Sha256: 0ac8e78bf91e17b0199af7198b92d319ad6ea376ca33f03840efa7c89a9c7c78

Contents?: true

Size: 795 Bytes

Versions: 17

Compression:

Stored size: 795 Bytes

Contents

grammar Expressive

  rule program
    statement* <Program>
  end

  rule statement
    whitespace* (list / atom) whitespace* <Statement>
  end

  rule atom
    (value / identifier)
  end

  rule list
    '(' statement+ ')' <List>
  end

  rule value
    (string / boolean / number)
  end

  rule word
    [a-zA-Z0-9_]+
  end

  rule string
    '"' ([^"\\] / "\\" . )* '"' <StringValue>
  end

  rule number
    ( float / integer )
  end

  rule integer
    [0-9]+ <IntegerValue>
  end

  rule float
    [0-9]+ ('.' [0-9]+) <FloatValue>
  end

  rule whitespace
    [\n\r\s\t]
  end

  rule parenthesis
    [\(\)\[\]]
  end

  rule boolean
    ('true' / 'false') <Boolean>
  end

  rule delimeter
    parenthesis / whitespace
  end

  rule identifier
    (!delimeter .)+ <Identifier>
  end

end

Version data entries

17 entries across 17 versions & 1 rubygems

Version Path
expressive-0.0.42 lib/expressive_grammar.treetop
expressive-0.0.41 lib/expressive_grammar.treetop
expressive-0.0.40 lib/expressive_grammar.treetop
expressive-0.0.39 lib/expressive_grammar.treetop
expressive-0.0.38 lib/expressive_grammar.treetop
expressive-0.0.37 lib/expressive_grammar.treetop
expressive-0.0.36 lib/expressive_grammar.treetop
expressive-0.0.35 lib/expressive_grammar.treetop
expressive-0.0.34 lib/expressive_grammar.treetop
expressive-0.0.33 lib/expressive_grammar.treetop
expressive-0.0.32 lib/expressive_grammar.treetop
expressive-0.0.31 lib/expressive_grammar.treetop
expressive-0.0.30 lib/expressive_grammar.treetop
expressive-0.0.29 lib/expressive_grammar.treetop
expressive-0.0.28 lib/expressive_grammar.treetop
expressive-0.0.27 lib/expressive_grammar.treetop
expressive-0.0.26 lib/expressive_grammar.treetop