string: '`' {.} '`' | '"' {.} '"'; _bin_digit: '0' - '1'; _oct_digit: _bin_digit | '2' - '7'; _dec_digit: _oct_digit | '8' - '9'; _hex_digit: _dec_digit | 'A' - 'F' | 'a' - 'f'; number: ['-' | '+'] '0' 'b' _bin_digit {_bin_digit | '_'} | ['-' | '+'] '0' 'o' _oct_digit {_oct_digit | '_'} | ['-' | '+'] _dec_digit {_dec_digit | '_'} | ['-' | '+'] '0' 'x' _hex_digit {_hex_digit | '_'}; _name_initial: 'A' - 'Z' | 'a' - 'z' | '_' | '~' | '!' | '@' | '#' | '$' | '%' | '^' | '&' | '*' | '-' | '_' | '+' | '=' | '?' | '/' | '.' | '\''; _name_char: _name_initial | _dec_digit; name: _name_initial {_name_char}; !whitespace: ' ' | '\t' | '\n' | '\r'; !comment: ';' {.} '\n'; <<>> Schema: ExprList; ExprList : Expr | ExprList Expr ; ValList : Val | ValList Val ; Val : string | number | name | Expr ; Expr : "(" name Val Val ")" | "(" name Val ")" | "(" name ")" | "(" "." ValList ")" ;