!whitespace : ' ' | '\t' | '\n' | '\r' ;

Root
  : StatementBlock
;

StatementBlock
  : empty
  | ";" StatementBlock
  | BracelessStatement
  | BracefulStatement
  | BracelessStatement ";" StatementBlock
  | BracefulStatement  ";" BracefulStatement
  | BracefulStatement      BracefulStatement
  | BracefulStatement  ";" BracelessStatement
  | BracefulStatement      BracelessStatement
;

BracelessStatement
  : "x"
;

BracefulStatement
  : "{" StatementBlock "}"
;
