uahgi2/parser.rkt

17 lines
533 B
Racket

#lang brag
u-program: [/NEWLINE+] (u-expr [/NEWLINE+])*
u-expr:
u-series ; string series
| u-atom
| u-converting-num
| u-sexp
u-sexp:
/L_PAREN u-expr (/SEPERATOR u-expr)* /R_PAREN
| /L_PAREN [(/" "|/NEWLINE)+] u-expr (/G_SEPERATOR [(/" "|/NEWLINE)+] u-expr [(/" "|/NEWLINE)+])* /R_PAREN ; ??
u-series: (u-atom | u-sexp)+
u-converting-num: /NUM_CONVERTER (u-id | u-number)
u-atom: u-id | u-string | u-number | (NEWLINE+)
u-number: INTEGER | DECIMAL
u-id: ID
@u-string: u-char+
@u-char: CHAR | " "