PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` This grammar was derived from slparse.c --- it is out-dated. statement: compound-statement if ( expression ) statement if ( expression ) statement else statement !if ( expression ) statement loop ( expression ) statement _for ( expression ) statement while ( expression ) statement do statement while (expression) ; for ( expressionopt ; expressionopt ; expressionopt ) statement ERROR_BLOCK statement EXIT_BLOCK statement USER_BLOCK0 statement USER_BLOCK1 statement USER_BLOCK2 statement USER_BLOCK3 statement USER_BLOCK4 statement forever statement break ; continue ; return expressionopt ; variable variable-list ; struct struct-decl ; define identifier function-args ; define identifier function-args compound-statement switch ( expression ) statement rpn-line at-line push ( expression ) ( expression ) = expression ; expression ; expression : statement-list: statement statement-list statement compound-statement: { statement-list } variable-list: variable-decl variable-decl variable-list variable-decl: identifier identifier = simple-expression struct-declaration: struct { struct-field-list }; struct-field-list: struct-field-name , struct-field-list struct-field-name struct-declaration: typedef struct { struct-field-list } Type_Name; struct-field-list: struct-field-name , struct-field-list struct-field-name function-args: ( args-dec-opt ) args-decl-opt: identifier args-decl , identifier expression: simple_expression simple-expression , expression % Note: simple-expression groups operators OP1 at same level. The % actual implementation will not do this. simple-expression: unary-expression binary-expression BINARY-OP unary-expression andelse xxelse-expression-list orelse xxelse-expression-list xxelse-expression-list: { expression } xxelse-expression-list { expression } binary-expression: unary-expression unary-expression BINARY-OP binary-expression unary-expression: postfix-expression ++ postfix-expression -- postfix-expression case unary-expression OP3 unary-expression (OP3: + - ~ & not @) postfix-expression: primary-expression postfix-expression [ expression ] postfix-expression ( function-args-expression ) postfix-expression . identifier postfix-expression ^ unary-expression postfix-expression ++ postfix-expression -- postfix-expression = simple-expression postfix-expression += simple-expression postfix-expression -= simple-expression primary-expression: literal identifier ( expression_opt ) [ inline-array-expression ] &identifier struct-definition __tmp(literal) inline-array-expression: expression expression : expression expression : expression : expression