# tokens/termials EQ LBRACE RBRACE LPAREN RPAREN DOT COMMA PIPE COMMENT STRING NUMBER ID CLASSNAME # non-terminals/productions stmtlist = stmt stmtlist | stmt = value | class_def | assign value = STRING | NUMBER | ID | object_ref | funk | method_call class_def = CLASSNAME EQ LBRACE assign_list RBRACE | CLASSNAME EQ LBRACE CLASSNAME RBRACE LBRACE assign_list RBRACE assign_list = assign assign_list | assign = ID EQ value | object_ref EQ value object_ref = ID DOT ID | object_ref DOT ID funk = LBRACE stmtlist RBRACE | LBRACE PIPE params PIPE stmtlist RBRACE params = ID | ID COMMA params method_call = method | method value | method LPAREN arguments RPAREN method = ID | object_ref arguments = value | value COMMA arguments