-
Notifications
You must be signed in to change notification settings - Fork 302
Closed
Description
I'm writing code using mpc.
#define STRUCTURE \
" \n" \
"number : /-?[0-9]+(\\.[0-9]*)?(e[0-9]+)?/ ; \n" \
"factor : '(' <lexp> ')' \n" \
" | <number> \n" \
" | <string> \n" \
" | <array> \n" \
" | <hash> \n" \
" | <lambda> \n" \
" | <call> \n" \
" | <item> \n" \
" | <ident> ; \n" \
"string : /\"[^\"]*\"/ ; \n" \
"array : '[' <lexp>? (',' <lexp>)* ']' ; \n" \
"pair : <string> ':' <lexp> ; \n" \
"hash : '{' <pair>? (',' <pair>)* '}' ; \n" \
"ident : /[a-zA-Z][a-zA-Z0-9_]*/ ; \n" \
" \n" \
"term : <factor> (('*' | '/' | '%') <factor>)* ; \n" \
"lexp : <term> (('+' | '-') <term>)* ; \n" \
"let_v : <ident> '=' <lexp> ';' ; \n" \
"item : <factor> '[' <lexp> ']' ; \n" \
"let_a : <item> '=' <lexp> ';' ; \n" \
"var : \"var\" <ident> '=' <lexp> ';' ; \n" \
"vararg : \"...\" ; \n" \
"stmts : <stmt>* ; \n" \
" \n" \
"lambda : \"func\" " \
" '(' <ident>? (<vararg> | (',' <ident>)*) ')' '{' <stmts> '}' ; \n" \
"func : \"func\" <ident> " \
" '(' <ident>? (<vararg> | (',' <ident>)*) ')' '{' <stmts> '}' ; \n" \
" \n" \
"call : <ident> '(' <lexp>? (',' <lexp>)* ')' ; \n" \
"return : \"return\" <lexp> ';' ; \n" \
"comment : /#[^\n]*/ ; \n" \
"eof : /$/ ; \n" \
"stmt : (<let_v> | <let_a> | <var> | (<lexp> ';') " \
" | <func> | <return> | <comment>) ; \n" \
"program : <stmts> <eof> ; \n"It seems <item> make hang.
Metadata
Metadata
Assignees
Labels
No labels