%%MERR %classdef type int bool %%MERR %classdef assgnop = += -= *= /= %= %%MERR %token Struct definition has no tag struct{ %%MERR %token Extraneous "var" in struct field definition struct s{var %%MERR %class Type Type should come last in struct field definition struct s{int %%MERR %notoken Invalid syntax in struct field definition struct s{t{ %%MERR %notoken Extraneous material in struct field definition struct s{{ %%MERR %token Extraneous keyword "struct" in field definition struct s{i:struct %%MERR %token Possible missing ';' between struct fields in definition struct s{i:int j %%MERR %notoken Expected ';' or '}' following struct field definition struct s{i:int: %%MERR %token Unexpected "{"; possible missing ';' after struct definition struct s{i:int}{ %%MERR %notoken Possible missing ';' after struct definition struct s{i:int}: %%MERR %notoken Unexpected tokens before program's opening brace a{ %%MERR %token Keyword "var" cannot appear before program's opening brace var %%MERR %notoken Extraneous material after program's closing brace {}a %%MERR %notoken Expected variable name in declaration {var: %%MERR %token Variable declaration has no type {var a; %%MERR %class Type Type should come last in variable declaration {int %%MERR %class Type Unexpected type name: invalid syntax in variable declaration? {;int %%MERR %token Variable declarations must precede executable code {;var %%MERR %notoken Expected ':' in variable declaration {var a{ %%MERR %token Extraneous keyword "struct" in variable declaration {var a:struct %%MERR %token Misplaced "*" in variable declaration {var a:* %%MERR %notoken Expected type name in variable declaration {var a:{ %%MERR %notoken Expected semicolon or '*' in variable declaration {var a:int: %%MERR %notoken Expected semicolon or '*' in variable declaration {var a:bool: %%MERR %notoken Expected semicolon or '*' in variable declaration {var a:t: %%MERR %token Struct definitions must precede braced program contents {struct %%MERR %token Struct definitions must precede braced program contents {;struct %%MERR %notoken Expected an operator or semicolon after expression {a+b: %%MERR %notoken Expected an operator or semicolon after expression {a: %%MERR %class AssgnOp Chained assignment operators are not allowed {a=b= %%MERR %notoken Expected an expression after assignment operator {a=: %%MERR %token Unexpected "=" following assignment; did you mean '=='? {a= = %%MERR %token Unexpected "=" following '<'; did you mean '<='? {a< = %%MERR %token Unexpected "=" following '>'; did you mean '>='? {a> = %%MERR %token Unexpected "<" following '<'; did you mean '<<'? {a< < %%MERR %token Unexpected ">" following '>'; did you mean '>>'? {a> > %%MERR %token Unexpected ">" following '<'; did you mean '!='? {a<> %%MERR %token Unexpected ">" following '>>'; operator '>>>' does not exist {a>>> %%MERR %token Unexpected "<" following '<<'; operator '<<<' does not exist {a<<< %%MERR %notoken Expected an expression after assignment operator {a+=: %%MERR %notoken Expected an expression after assignment operator {a-=: %%MERR %notoken Expected an expression after assignment operator {a*=: %%MERR %notoken Expected an expression after assignment operator {a/=: %%MERR %notoken Expected an expression after assignment operator {a%=: %%MERR %notoken Expected an operator or semicolon after expression {a=b: %%MERR %notoken Expected an operator or semicolon after expression {a+=b: %%MERR %notoken Expected an operator or semicolon after expression {a-=b: %%MERR %notoken Expected an operator or semicolon after expression {a*=b: %%MERR %notoken Expected an operator or semicolon after expression {a/=b: %%MERR %notoken Expected an operator or semicolon after expression {a%=b: %%MERR %notoken Expected an operator or ')' after 'if' condition {if(a: %%MERR %token Unexpected '=' in 'if' condition; did you mean '=='? {if(a= %%MERR %notoken Binary operator expected second operand {a+: %%MERR %notoken Binary operator expected second operand {a-: %%MERR %notoken Binary operator expected second operand {a*: %%MERR %token Unary '+' does not exist; did you mean '*+'? {a* + %%MERR %token Syntax error after '*'; did you mean '*=='? {a* == %%MERR %token Syntax error after '*'; did you mean '*!='? {a* != %%MERR %notoken Binary operator expected second operand {a/: %%MERR %notoken Binary operator expected second operand {a%: %%MERR %notoken Binary operator expected second operand {a<<: %%MERR %notoken Binary operator expected second operand {a>>: %%MERR %notoken Binary operator expected second operand {a&&: %%MERR %notoken Binary operator expected second operand {a||: %%MERR %notoken Binary operator expected second operand {a^^: %%MERR %notoken Binary operator expected second operand {a&: %%MERR %notoken Binary operator expected second operand {a|: %%MERR %notoken Binary operator expected second operand {a^: %%MERR %notoken Binary operator expected second operand {a==: %%MERR %notoken Binary operator expected second operand {a!=: %%MERR %notoken Binary operator expected second operand {a>: %%MERR %notoken Binary operator expected second operand {a<: %%MERR %notoken Binary operator expected second operand {a>=: %%MERR %notoken Binary operator expected second operand {a<=: %%MERR %token Unexpected '=' after '&'; operator '&=' does not exist {a&= %%MERR %token Unexpected '=' after '|'; operator '|=' does not exist {a|= %%MERR %token Unexpected '=' after '^'; operator '^=' does not exist {a^= %%MERR %token Unexpected '=' after '<<'; operator '<<=' does not exist {a<<= %%MERR %token Unexpected '=' after '>>'; operator '>>=' does not exist {a>>= %%MERR %notoken Argument to "alloc" must be parenthesized {alloc: %%MERR %notoken First argument to "alloc" must be an expression {alloc(: %%MERR %notoken First argument to "alloc" must be an expression {x=alloc(: %%MERR %token Operator "alloc" expects two arguments {x=alloc(1) %%MERR %notoken Second argument to "alloc" must be a type {alloc(1,: %%MERR %notoken Second argument to "alloc" must be a type {x=alloc(1,: %%MERR %notoken Argument to "size" must be parenthesized {size: %%MERR %notoken Argument to "size" must be parenthesized {x=size: %%MERR %notoken Argument to "size" must be an expression {size(: %%MERR %notoken Argument to "size" must be an expression {x=size(: %%MERR %notoken Argument to "offset" must be parenthesized {offset: %%MERR %notoken Argument to "offset" must be parenthesized {x=offset: %%MERR %notoken Argument to "offset" must be an expression {offset(: %%MERR %notoken Argument to "offset" must be an expression {x=offset(: %%MERR %token Unary '+' operator does not exist {x=!+foo %%MERR %token Unary '+' operator does not exist {!+foo %%MERR %token Unary '+' operator does not exist {+foo %%MERR %token Unary '+' operator does not exist {x=+foo %%MERR %token Unary '/' does not exist; did you mean '/='? {x=/foo %%MERR %token Unary '%' does not exist; did you mean '%='? {x=%foo %%MERR %notoken Unary '&' operator expects an lvalue {&: %%MERR %notoken Unary '&' operator expects an lvalue {x=&: %%MERR %notoken Unary '*' operator expects an expression {*: %%MERR %notoken Unary '*' operator expects an expression {x=*: %%MERR %notoken Unary '-' operator expects an expression {-: %%MERR %notoken Unary '-' operator expects an expression {x=-: %%MERR %notoken Condition in "if" statement requires parentheses {if: %%MERR %notoken Condition in 'if' statement must be an expression {if(: %%MERR %token Unmatched "else" {else %%MERR %token Unmatched "else" {var a:b;else %%MERR %token Unmatched "else" {;else %%MERR %token Braced blocks are not valid statements {{ %%MERR %token Braced blocks are not valid statements {var a:b;{ %%MERR %token Braced blocks are not valid statements {;{ %%MERR %notoken Expected variable declaration or executable statement {: %%MERR %notoken Expected variable declaration or executable statement {var a:b;: %%MERR %notoken Expected statement {;: %%MERR %notoken Expected statement {if(x): %%MERR %notoken Expected statement {if(x);else: