hy/grammar.md
2013-01-25 14:44:02 +01:00

1.0 KiB

Lexical syntax

OPEN-PAREN   :=   '('

CLOSE-PAREN  :=   ')'

OPEN-SQUARE  :=   '['

CLOSE-SQUARE :=   ']'

OPEN-CURLY   :=   '{'

CLOSE-CURLY  :=   '}'

WHITESPACE   :=   ' '  |  '\t'  |  '\n'  |  '\r'

COMMENT      :=   ';'  ???

STRING       :=   '"'  ???  '"'

CONSTANT     :=   '*'  ???  '*'

BOOLEAN      :=   'true'  |  'false'

SYMBOL       :=   ???

NUMBER       :=   ???

HASH         :=   '#!'  ???

Grammar ## (example)

Hy           :=  HASH  |  COMMENT  |  WHITESPACE  |  Expression

Expression   :=  OPEN-PAREN  Operator  Args  Close-Paren

Operator     :=  ???

Args         :=  Value(*)

List         :=  OPEN-SQUARE  Value(*)  CLOSE-SQUARE

Map          :=  OPEN-CURLY  ( Value  Value )(*)  CLOSE-CURLY

Value        :=  STRING  |  CONSTANT  |  BOOLEAN  |  SYMBOL  |  NUMBER  |  Expression  |  List  |  Map