[
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Precedence by order (see github.com/ethereum/solidity/pull/732)"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   = Expression ('++' | '--')"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | NewExpression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | IndexAccess"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | MemberAccess"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | FunctionCall"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | '(' Expression ')'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | ('!' | '~' | 'delete' | '++' | '--' | '+' | '-') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '**' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression ('*' | '/' | '%') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression ('+' | '-') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression ('<<' | '>>') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '&' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '^' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '|' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression ('<' | '>' | '<=' | '>=') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression ('==' | '!=') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '&&' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '||' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression '?' Expression ':' Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | Expression ('=' | '|=' | '^=' | '&=' | '<<=' | '>>=' | '+=' | '-=' | '*=' | '/=' | '%=') Expression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//   | PrimaryExpression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// PrimaryExpression = BooleanLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | NumberLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | HexLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | StringLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | TupleExpression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | Identifier"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | ElementaryTypeNameExpression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// ExpressionList = Expression ( ',' Expression )*"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NameValueList = Identifier ':' Expression ( ',' Identifier ':' Expression )*"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// FunctionCall = Expression '(' FunctionCallArguments ')'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// FunctionCallArguments = '{' NameValueList? '}'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                       | ExpressionList?"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NewExpression = 'new' TypeName"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// MemberAccess = Expression '.' Identifier"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// IndexAccess = Expression '[' Expression? ']'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// BooleanLiteral = 'true' | 'false'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NumberLiteral = ( HexNumber | DecimalNumber ) (' ' NumberUnit)?"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NumberUnit = 'wei' | 'szabo' | 'finney' | 'ether'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//            | 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'years'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// HexLiteral = 'hex' ('\"' ([0-9a-fA-F]{2})* '\"' | '\\'' ([0-9a-fA-F]{2})* '\\'')"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// StringLiteral = '\"' ([^\"\\r\\n\\\\] | '\\\\' .)* '\"'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Identifier = [a-zA-Z_$] [a-zA-Z_$0-9]*"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// HexNumber = '0x' [0-9a-fA-F]+"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// DecimalNumber = [0-9]+ ( '.' [0-9]* )? ( [eE] [0-9]+ )?"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// TupleExpression = '(' ( Expression? ( ',' Expression? )*  )? ')'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                 | '[' ( Expression  ( ',' Expression  )*  )? ']'"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('++' | '--')"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "int256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "keyword.operator",
      "value": "++"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "++"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "keyword.operator",
      "value": "--"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "--"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NewExpression"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "CustomContract"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "new"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "CustomContract"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// IndexAccess"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "amounts"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "amounts"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "17"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "amounts"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "amounts"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// MemberAccess"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "customColor"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"red\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "customize"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "color"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "customColor"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// FunctionCall"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// FunctionCall = Expression '(' FunctionCallArguments ')'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// FunctionCallArguments = '{' NameValueList? '}'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                       | ExpressionList?"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NameValueList = Identifier ':' Expression ( ',' Identifier ':' Expression )*"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "result"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "customize"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "result"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "customize"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "result"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "customContract"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "customize"
    },
    {
      "type": "paren.lparen",
      "value": "({"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "c"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": "})"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "identifier",
      "value": "doit"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "doit"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "doit"
    },
    {
      "type": "paren.lparen",
      "value": "({"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "c"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": "})"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "identifier",
      "value": "doit"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "doit"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "doit"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "paren.lparen",
      "value": "({"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "c"
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": "})"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// '(' Expression ')'"
    }
  ],
  [
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "identifier",
      "value": "myInt"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// ('!' | '~' | 'delete' | '++' | '--' | '+' | '-') Expression"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "!"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "!"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "~"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "~"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "delete"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "++"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "++"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "--"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "--"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "+"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "+"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "keyword.operator",
      "value": "-"
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "-"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '**' Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "**"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('*' | '/' | '%') Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "*"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "y"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "/"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "z"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "%"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('+' | '-') Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "+"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "y"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "-"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('<<' | '>>') Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "<<"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "y"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": ">>"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '&' Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "&"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '^' Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "^"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '|' Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "x"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "|"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('<' | '>' | '<=' | '>=') Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "lt"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "<"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "gt"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": ">"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "le"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "<="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "ge"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": ">="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('==' | '!=') Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "eq"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "=="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "ne"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "!="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '&&' Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "and"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "&&"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '||' Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "or"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "||"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression '?' Expression ':' Expression"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "outcome"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "conditional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": ">"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "10"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "punctuation.operator",
      "value": "?"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"yes\""
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "punctuation.operator",
      "value": ":"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"no\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Expression ('=' | '|=' | '^=' | '&=' | '<<=' | '>>=' | '+=' | '-=' | '*=' | '/=' | '%=') Expression"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "struct"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "KitchenSink"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "paren.lparen",
      "value": "{"
    }
  ],
  [
    {
      "type": "text",
      "value": "  "
    },
    {
      "type": "storage.type",
      "value": "uint32"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "color"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "text",
      "value": "  "
    },
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "paren.rparen",
      "value": "}"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "KitchenSink"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "k"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "k"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "color"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.hex",
      "value": "0x00000000"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "k"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "color"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "|="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.hex",
      "value": "0xff000000"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "k"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "color"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "^="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.hex",
      "value": "0x0f0f0f0f"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "k"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "color"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "&="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.hex",
      "value": "0xffff0000"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "25"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "<<="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": ">>="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "+="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "-="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "*="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "/="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "identifier",
      "value": "v"
    },
    {
      "type": "punctuation.operator",
      "value": "."
    },
    {
      "type": "identifier",
      "value": "volume"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "%="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// PrimaryExpression = BooleanLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | NumberLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | HexLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | StringLiteral"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | TupleExpression"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | Identifier"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                   | ElementaryTypeNameExpression"
    }
  ],
  [],
  [],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// BooleanLiteral = 'true' | 'false'"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "truth"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.language.boolean",
      "value": "true"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "bool"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "truth"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.language.boolean",
      "value": "false"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NumberLiteral = ( HexNumber | DecimalNumber ) (' ' NumberUnit)?"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// HexNumber = '0x' [0-9a-fA-F]+"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// DecimalNumber = [0-9]+ ( '.' [0-9]* )? ( [eE] [0-9]+ )?"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// NumberUnit = 'wei' | 'szabo' | 'finney' | 'ether'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//            | 'seconds' | 'minutes' | 'hours' | 'days' | 'weeks' | 'years'"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "number"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.hex",
      "value": "0x123abcDEF"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.currency",
      "value": "wei"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "number"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "123456"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.currency",
      "value": "szabo"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "number"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "123456"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.currency",
      "value": "finney"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "number"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "123456"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.currency",
      "value": "ether"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "time"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "60"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.time",
      "value": "seconds"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "time"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "60"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.time",
      "value": "minutes"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "time"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "60"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.time",
      "value": "hours"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "time"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "60"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.time",
      "value": "days"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "time"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "60"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.time",
      "value": "weeks"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "time"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "60"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric.other.unit.time.deprecated",
      "value": "years"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "123.456"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "-123.456"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "123.456e12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "-123.456e12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "123.456E12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "-123.456E12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// grammar.txt is missing negative exponents (for really small numbers)."
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "1.456e-12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "-1.456e-12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "1.456E-12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.reserved",
      "value": "ufixed128x80"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "fractional"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "-1.456E-12"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// HexLiteral = 'hex' ('\"' ([0-9a-fA-F]{2})* '\"' | '\\'' ([0-9a-fA-F]{2})* '\\'')"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "bytes"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "hexer"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.other.hex",
      "value": "hex"
    },
    {
      "type": "string.other.hex",
      "value": "\""
    },
    {
      "type": "string.other.hex",
      "value": "\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "bytes"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "hexer"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.other.hex",
      "value": "hex"
    },
    {
      "type": "string.other.hex",
      "value": "\""
    },
    {
      "type": "string.other.hex",
      "value": "0123456789abcdef0123456789ABCDEF"
    },
    {
      "type": "string.other.hex",
      "value": "\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "bytes"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "hexer"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.other.hex",
      "value": "hex"
    },
    {
      "type": "string.other.hex",
      "value": "'"
    },
    {
      "type": "string.other.hex",
      "value": "'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "bytes"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "hexer"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.other.hex",
      "value": "hex"
    },
    {
      "type": "string.other.hex",
      "value": "'"
    },
    {
      "type": "string.other.hex",
      "value": "0123456789abcdef0123456789ABCDEF"
    },
    {
      "type": "string.other.hex",
      "value": "'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// StringLiteral = '\"' ([^\"\\r\\n\\\\] | '\\\\' .)* '\"'"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "talker"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "talker"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"Hello!\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "talker"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"Hello "
    },
    {
      "type": "constant.language.escape",
      "value": "\\x26\\x03"
    },
    {
      "type": "string.quoted.double",
      "value": "!\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "talker"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"Hello "
    },
    {
      "type": "constant.language.escape",
      "value": "\\u2603"
    },
    {
      "type": "string.quoted.double",
      "value": "!\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "talker"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"I said "
    },
    {
      "type": "constant.language.escape",
      "value": "\\\""
    },
    {
      "type": "string.quoted.double",
      "value": "Hello!"
    },
    {
      "type": "constant.language.escape",
      "value": "\\\""
    },
    {
      "type": "string.quoted.double",
      "value": ", did you hear it?\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "talker"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.double",
      "value": "\"Look ma, \\"
    }
  ],
  [
    {
      "type": "string.quoted.double",
      "value": "multi-line strings! Just escape \\"
    }
  ],
  [
    {
      "type": "string.quoted.double",
      "value": "the newline with a back-slash.\""
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// https://solidity.readthedocs.io/en/develop/types.html#string-literals"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// ^^ says both single-quoted and double-quoted string literals, even if"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// grammar.txt has only double-quoted."
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "greet"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.single",
      "value": "''"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "greet"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.single",
      "value": "'Hello World!'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "greet"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.single",
      "value": "'Hello "
    },
    {
      "type": "constant.language.escape",
      "value": "\\x26\\x03"
    },
    {
      "type": "string.quoted.single",
      "value": "!'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "greet"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.single",
      "value": "'Hello "
    },
    {
      "type": "constant.language.escape",
      "value": "\\u2603"
    },
    {
      "type": "string.quoted.single",
      "value": "!'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "greet"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.single",
      "value": "'Hello "
    },
    {
      "type": "constant.language.escape",
      "value": "\\'"
    },
    {
      "type": "string.quoted.single",
      "value": "World"
    },
    {
      "type": "constant.language.escape",
      "value": "\\'"
    },
    {
      "type": "string.quoted.single",
      "value": "!'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type.array.dynamic",
      "value": "string"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "greet"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "string.quoted.single",
      "value": "'Hello \\"
    }
  ],
  [
    {
      "type": "string.quoted.single",
      "value": "World!'"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Identifier = [a-zA-Z_$] [a-zA-Z_$0-9]*"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "A"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// \"_\" is be a legal identifier outside of modifiers. Keyword syntax"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// highlighting triggers nevertheless, to alert user of special meaning and"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// potential confusion."
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.control",
      "value": "_"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "$"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a0b_$1c"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "A0b_$1c"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "_0b_$1c"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "$0b_$1c"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// TupleExpression = '(' ( Expression? ( ',' Expression? )*  )? ')'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "//                 | '[' ( Expression  ( ',' Expression  )*  )? ']'"
    }
  ],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// The \"[]\" bracket notation is not a tuple but an array literal. See below."
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "c"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "0"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "c"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Array Literal (not in grammar.txt)"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "storage.modifier.storagelocation",
      "value": "memory"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "paren.lparen",
      "value": "["
    },
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "2"
    },
    {
      "type": "punctuation.operator",
      "value": ","
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "3"
    },
    {
      "type": "paren.rparen",
      "value": "]"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "comment.line.double-slash",
      "value": "// Explicit Type Cast (not in grammar.txt AFAICT)"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint8"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "constant.numeric",
      "value": "1"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "b"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "storage.type",
      "value": "uint256"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "identifier",
      "value": "a"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  [],
  [
    {
      "type": "storage.type",
      "value": "address"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "identifier",
      "value": "o"
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "keyword.operator",
      "value": "="
    },
    {
      "type": "text",
      "value": " "
    },
    {
      "type": "storage.type",
      "value": "address"
    },
    {
      "type": "paren.lparen",
      "value": "("
    },
    {
      "type": "identifier",
      "value": "otherContract"
    },
    {
      "type": "paren.rparen",
      "value": ")"
    },
    {
      "type": "punctuation.operator",
      "value": ";"
    }
  ],
  []
]
