uahgi2/parser.rkt

17 lines
492 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 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