Created
March 16, 2017 15:36
-
-
Save AbigailBuccaneer/a851e384288a24414d944999f97ce015 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> | |
<HTML> | |
<HEAD> | |
<TITLE>BNF for idl.jj</TITLE> | |
</HEAD> | |
<BODY> | |
<H1 ALIGN=CENTER>BNF for idl.jj</H1> | |
<H2 ALIGN=CENTER>TOKENS</H2> | |
<TABLE> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* WHITE SPACE */</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> SKIP : { | |
" " | |
| "\t" | |
| "\n" | |
| "\r" | |
| "\f" | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* COMMENTS */</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> SKIP : { | |
<SINGLE_LINE_COMMENT: "//" (~["\n","\r"])* ("\n" | "\r" | "\r\n")?> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> SKIP : { | |
<"/**" ~["/"]> : DOC_COMMENT | |
| "/*" : MULTI_LINE_COMMENT | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DOC_COMMENT,MULTI_LINE_COMMENT> MORE : { | |
<~[]> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DOC_COMMENT> SPECIAL : { | |
"*/" : DEFAULT | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<MULTI_LINE_COMMENT> SKIP : { | |
"*/" : DEFAULT | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* RESERVED WORDS AND LITERALS */</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> TOKEN : { | |
<ARRAY: "array"> | |
| <BOOLEAN: "boolean"> | |
| <DOUBLE: "double"> | |
| <ENUM: "enum"> | |
| <ERROR: "error"> | |
| <FALSE: "false"> | |
| <FIXED: "fixed"> | |
| <FLOAT: "float"> | |
| <IDL: "idl"> | |
| <IMPORT: "import"> | |
| <INT: "int"> | |
| <LONG: "long"> | |
| <MAP: "map"> | |
| <ONEWAY: "oneway"> | |
| <BYTES: "bytes"> | |
| <SCHEMA: "schema"> | |
| <STRING: "string"> | |
| <NULL: "null"> | |
| <PROTOCOL: "protocol"> | |
| <RECORD: "record"> | |
| <THROWS: "throws"> | |
| <TRUE: "true"> | |
| <UNION: "union"> | |
| <VOID: "void"> | |
| <DATE: "date"> | |
| <TIME: "time_ms"> | |
| <TIMESTAMP: "timestamp_ms"> | |
| <DECIMAL: "decimal"> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* LITERALS */</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> TOKEN : { | |
<INTEGER_LITERAL: ("-")? (<DECIMAL_LITERAL> (["l","L"])? | <HEX_LITERAL> (["l","L"])? | <OCTAL_LITERAL> (["l","L"])?)> | |
| <#DECIMAL_LITERAL: ["1"-"9"] (["0"-"9"])*> | |
| <#HEX_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+> | |
| <#OCTAL_LITERAL: "0" (["0"-"7"])*> | |
| <FLOATING_POINT_LITERAL: ("-")? ("NaN" | "Infinity" | <DECIMAL_FLOATING_POINT_LITERAL> | <HEXADECIMAL_FLOATING_POINT_LITERAL>)> | |
| <#DECIMAL_FLOATING_POINT_LITERAL: (["0"-"9"])+ "." (["0"-"9"])* (<DECIMAL_EXPONENT>)? (["f","F","d","D"])? | "." (["0"-"9"])+ (<DECIMAL_EXPONENT>)? (["f","F","d","D"])? | (["0"-"9"])+ <DECIMAL_EXPONENT> (["f","F","d","D"])? | (["0"-"9"])+ (<DECIMAL_EXPONENT>)? ["f","F","d","D"]> | |
| <#DECIMAL_EXPONENT: ["e","E"] (["+","-"])? (["0"-"9"])+> | |
| <#HEXADECIMAL_FLOATING_POINT_LITERAL: "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])+ (".")? <HEXADECIMAL_EXPONENT> (["f","F","d","D"])? | "0" ["x","X"] (["0"-"9","a"-"f","A"-"F"])* "." (["0"-"9","a"-"f","A"-"F"])+ <HEXADECIMAL_EXPONENT> (["f","F","d","D"])?> | |
| <#HEXADECIMAL_EXPONENT: ["p","P"] (["+","-"])? (["0"-"9"])+> | |
| <CHARACTER_LITERAL: "\'" (~["\'","\\","\n","\r"] | "\\" (["n","t","b","r","f","\\","\'","\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"])) "\'"> | |
| <STRING_LITERAL: "\"" (~["\"","\\","\n","\r"] | "\\" (["n","t","b","r","f","\\","\'","\""] | ["0"-"7"] (["0"-"7"])? | ["0"-"3"] ["0"-"7"] ["0"-"7"]))* "\""> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* IDENTIFIERS */</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> TOKEN : { | |
<IDENTIFIER: <LETTER> (<PART_LETTER>)*> | |
| <#LETTER: ["$","A"-"Z","_","a"-"z","\u00a2"-"\u00a5","\u00aa","\u00b5","\u00ba","\u00c0"-"\u00d6","\u00d8"-"\u00f6","\u00f8"-"\u021f","\u0222"-"\u0233","\u0250"-"\u02ad","\u02b0"-"\u02b8","\u02bb"-"\u02c1","\u02d0"-"\u02d1","\u02e0"-"\u02e4","\u02ee","\u037a","\u0386","\u0388"-"\u038a","\u038c","\u038e"-"\u03a1","\u03a3"-"\u03ce","\u03d0"-"\u03d7","\u03da"-"\u03f3","\u0400"-"\u0481","\u048c"-"\u04c4","\u04c7"-"\u04c8","\u04cb"-"\u04cc","\u04d0"-"\u04f5","\u04f8"-"\u04f9","\u0531"-"\u0556","\u0559","\u0561"-"\u0587","\u05d0"-"\u05ea","\u05f0"-"\u05f2","\u0621"-"\u063a","\u0640"-"\u064a","\u0671"-"\u06d3","\u06d5","\u06e5"-"\u06e6","\u06fa"-"\u06fc","\u0710","\u0712"-"\u072c","\u0780"-"\u07a5","\u0905"-"\u0939","\u093d","\u0950","\u0958"-"\u0961","\u0985"-"\u098c","\u098f"-"\u0990","\u0993"-"\u09a8","\u09aa"-"\u09b0","\u09b2","\u09b6"-"\u09b9","\u09dc"-"\u09dd","\u09df"-"\u09e1","\u09f0"-"\u09f3","\u0a05"-"\u0a0a","\u0a0f"-"\u0a10","\u0a13"-"\u0a28","\u0a2a"-"\u0a30","\u0a32"-"\u0a33","\u0a35"-"\u0a36","\u0a38"-"\u0a39","\u0a59"-"\u0a5c","\u0a5e","\u0a72"-"\u0a74","\u0a85"-"\u0a8b","\u0a8d","\u0a8f"-"\u0a91","\u0a93"-"\u0aa8","\u0aaa"-"\u0ab0","\u0ab2"-"\u0ab3","\u0ab5"-"\u0ab9","\u0abd","\u0ad0","\u0ae0","\u0b05"-"\u0b0c","\u0b0f"-"\u0b10","\u0b13"-"\u0b28","\u0b2a"-"\u0b30","\u0b32"-"\u0b33","\u0b36"-"\u0b39","\u0b3d","\u0b5c"-"\u0b5d","\u0b5f"-"\u0b61","\u0b85"-"\u0b8a","\u0b8e"-"\u0b90","\u0b92"-"\u0b95","\u0b99"-"\u0b9a","\u0b9c","\u0b9e"-"\u0b9f","\u0ba3"-"\u0ba4","\u0ba8"-"\u0baa","\u0bae"-"\u0bb5","\u0bb7"-"\u0bb9","\u0c05"-"\u0c0c","\u0c0e"-"\u0c10","\u0c12"-"\u0c28","\u0c2a"-"\u0c33","\u0c35"-"\u0c39","\u0c60"-"\u0c61","\u0c85"-"\u0c8c","\u0c8e"-"\u0c90","\u0c92"-"\u0ca8","\u0caa"-"\u0cb3","\u0cb5"-"\u0cb9","\u0cde","\u0ce0"-"\u0ce1","\u0d05"-"\u0d0c","\u0d0e"-"\u0d10","\u0d12"-"\u0d28","\u0d2a"-"\u0d39","\u0d60"-"\u0d61","\u0d85"-"\u0d96","\u0d9a"-"\u0db1","\u0db3"-"\u0dbb","\u0dbd","\u0dc0"-"\u0dc6","\u0e01"-"\u0e30","\u0e32"-"\u0e33","\u0e3f"-"\u0e46","\u0e81"-"\u0e82","\u0e84","\u0e87"-"\u0e88","\u0e8a","\u0e8d","\u0e94"-"\u0e97","\u0e99"-"\u0e9f","\u0ea1"-"\u0ea3","\u0ea5","\u0ea7","\u0eaa"-"\u0eab","\u0ead"-"\u0eb0","\u0eb2"-"\u0eb3","\u0ebd","\u0ec0"-"\u0ec4","\u0ec6","\u0edc"-"\u0edd","\u0f00","\u0f40"-"\u0f47","\u0f49"-"\u0f6a","\u0f88"-"\u0f8b","\u1000"-"\u1021","\u1023"-"\u1027","\u1029"-"\u102a","\u1050"-"\u1055","\u10a0"-"\u10c5","\u10d0"-"\u10f6","\u1100"-"\u1159","\u115f"-"\u11a2","\u11a8"-"\u11f9","\u1200"-"\u1206","\u1208"-"\u1246","\u1248","\u124a"-"\u124d","\u1250"-"\u1256","\u1258","\u125a"-"\u125d","\u1260"-"\u1286","\u1288","\u128a"-"\u128d","\u1290"-"\u12ae","\u12b0","\u12b2"-"\u12b5","\u12b8"-"\u12be","\u12c0","\u12c2"-"\u12c5","\u12c8"-"\u12ce","\u12d0"-"\u12d6","\u12d8"-"\u12ee","\u12f0"-"\u130e","\u1310","\u1312"-"\u1315","\u1318"-"\u131e","\u1320"-"\u1346","\u1348"-"\u135a","\u13a0"-"\u13f4","\u1401"-"\u166c","\u166f"-"\u1676","\u1681"-"\u169a","\u16a0"-"\u16ea","\u1780"-"\u17b3","\u17db","\u1820"-"\u1877","\u1880"-"\u18a8","\u1e00"-"\u1e9b","\u1ea0"-"\u1ef9","\u1f00"-"\u1f15","\u1f18"-"\u1f1d","\u1f20"-"\u1f45","\u1f48"-"\u1f4d","\u1f50"-"\u1f57","\u1f59","\u1f5b","\u1f5d","\u1f5f"-"\u1f7d","\u1f80"-"\u1fb4","\u1fb6"-"\u1fbc","\u1fbe","\u1fc2"-"\u1fc4","\u1fc6"-"\u1fcc","\u1fd0"-"\u1fd3","\u1fd6"-"\u1fdb","\u1fe0"-"\u1fec","\u1ff2"-"\u1ff4","\u1ff6"-"\u1ffc","\u203f"-"\u2040","\u207f","\u20a0"-"\u20af","\u2102","\u2107","\u210a"-"\u2113","\u2115","\u2119"-"\u211d","\u2124","\u2126","\u2128","\u212a"-"\u212d","\u212f"-"\u2131","\u2133"-"\u2139","\u2160"-"\u2183","\u3005"-"\u3007","\u3021"-"\u3029","\u3031"-"\u3035","\u3038"-"\u303a","\u3041"-"\u3094","\u309d"-"\u309e","\u30a1"-"\u30fe","\u3105"-"\u312c","\u3131"-"\u318e","\u31a0"-"\u31b7","\u3400"-"\u4db5","\u4e00"-"\u9fa5","\ua000"-"\ua48c","\uac00"-"\ud7a3","\uf900"-"\ufa2d","\ufb00"-"\ufb06","\ufb13"-"\ufb17","\ufb1d","\ufb1f"-"\ufb28","\ufb2a"-"\ufb36","\ufb38"-"\ufb3c","\ufb3e","\ufb40"-"\ufb41","\ufb43"-"\ufb44","\ufb46"-"\ufbb1","\ufbd3"-"\ufd3d","\ufd50"-"\ufd8f","\ufd92"-"\ufdc7","\ufdf0"-"\ufdfb","\ufe33"-"\ufe34","\ufe4d"-"\ufe4f","\ufe69","\ufe70"-"\ufe72","\ufe74","\ufe76"-"\ufefc","\uff04","\uff21"-"\uff3a","\uff3f","\uff41"-"\uff5a","\uff65"-"\uffbe","\uffc2"-"\uffc7","\uffca"-"\uffcf","\uffd2"-"\uffd7","\uffda"-"\uffdc","\uffe0"-"\uffe1","\uffe5"-"\uffe6"]> | |
| <#PART_LETTER: ["\u0000"-"\b","\u000e"-"\u001b","$","0"-"9","A"-"Z","_","a"-"z","\u007f"-"\u009f","\u00a2"-"\u00a5","\u00aa","\u00b5","\u00ba","\u00c0"-"\u00d6","\u00d8"-"\u00f6","\u00f8"-"\u021f","\u0222"-"\u0233","\u0250"-"\u02ad","\u02b0"-"\u02b8","\u02bb"-"\u02c1","\u02d0"-"\u02d1","\u02e0"-"\u02e4","\u02ee","\u0300"-"\u034e","\u0360"-"\u0362","\u037a","\u0386","\u0388"-"\u038a","\u038c","\u038e"-"\u03a1","\u03a3"-"\u03ce","\u03d0"-"\u03d7","\u03da"-"\u03f3","\u0400"-"\u0481","\u0483"-"\u0486","\u048c"-"\u04c4","\u04c7"-"\u04c8","\u04cb"-"\u04cc","\u04d0"-"\u04f5","\u04f8"-"\u04f9","\u0531"-"\u0556","\u0559","\u0561"-"\u0587","\u0591"-"\u05a1","\u05a3"-"\u05b9","\u05bb"-"\u05bd","\u05bf","\u05c1"-"\u05c2","\u05c4","\u05d0"-"\u05ea","\u05f0"-"\u05f2","\u0621"-"\u063a","\u0640"-"\u0655","\u0660"-"\u0669","\u0670"-"\u06d3","\u06d5"-"\u06dc","\u06df"-"\u06e8","\u06ea"-"\u06ed","\u06f0"-"\u06fc","\u070f"-"\u072c","\u0730"-"\u074a","\u0780"-"\u07b0","\u0901"-"\u0903","\u0905"-"\u0939","\u093c"-"\u094d","\u0950"-"\u0954","\u0958"-"\u0963","\u0966"-"\u096f","\u0981"-"\u0983","\u0985"-"\u098c","\u098f"-"\u0990","\u0993"-"\u09a8","\u09aa"-"\u09b0","\u09b2","\u09b6"-"\u09b9","\u09bc","\u09be"-"\u09c4","\u09c7"-"\u09c8","\u09cb"-"\u09cd","\u09d7","\u09dc"-"\u09dd","\u09df"-"\u09e3","\u09e6"-"\u09f3","\u0a02","\u0a05"-"\u0a0a","\u0a0f"-"\u0a10","\u0a13"-"\u0a28","\u0a2a"-"\u0a30","\u0a32"-"\u0a33","\u0a35"-"\u0a36","\u0a38"-"\u0a39","\u0a3c","\u0a3e"-"\u0a42","\u0a47"-"\u0a48","\u0a4b"-"\u0a4d","\u0a59"-"\u0a5c","\u0a5e","\u0a66"-"\u0a74","\u0a81"-"\u0a83","\u0a85"-"\u0a8b","\u0a8d","\u0a8f"-"\u0a91","\u0a93"-"\u0aa8","\u0aaa"-"\u0ab0","\u0ab2"-"\u0ab3","\u0ab5"-"\u0ab9","\u0abc"-"\u0ac5","\u0ac7"-"\u0ac9","\u0acb"-"\u0acd","\u0ad0","\u0ae0","\u0ae6"-"\u0aef","\u0b01"-"\u0b03","\u0b05"-"\u0b0c","\u0b0f"-"\u0b10","\u0b13"-"\u0b28","\u0b2a"-"\u0b30","\u0b32"-"\u0b33","\u0b36"-"\u0b39","\u0b3c"-"\u0b43","\u0b47"-"\u0b48","\u0b4b"-"\u0b4d","\u0b56"-"\u0b57","\u0b5c"-"\u0b5d","\u0b5f"-"\u0b61","\u0b66"-"\u0b6f","\u0b82"-"\u0b83","\u0b85"-"\u0b8a","\u0b8e"-"\u0b90","\u0b92"-"\u0b95","\u0b99"-"\u0b9a","\u0b9c","\u0b9e"-"\u0b9f","\u0ba3"-"\u0ba4","\u0ba8"-"\u0baa","\u0bae"-"\u0bb5","\u0bb7"-"\u0bb9","\u0bbe"-"\u0bc2","\u0bc6"-"\u0bc8","\u0bca"-"\u0bcd","\u0bd7","\u0be7"-"\u0bef","\u0c01"-"\u0c03","\u0c05"-"\u0c0c","\u0c0e"-"\u0c10","\u0c12"-"\u0c28","\u0c2a"-"\u0c33","\u0c35"-"\u0c39","\u0c3e"-"\u0c44","\u0c46"-"\u0c48","\u0c4a"-"\u0c4d","\u0c55"-"\u0c56","\u0c60"-"\u0c61","\u0c66"-"\u0c6f","\u0c82"-"\u0c83","\u0c85"-"\u0c8c","\u0c8e"-"\u0c90","\u0c92"-"\u0ca8","\u0caa"-"\u0cb3","\u0cb5"-"\u0cb9","\u0cbe"-"\u0cc4","\u0cc6"-"\u0cc8","\u0cca"-"\u0ccd","\u0cd5"-"\u0cd6","\u0cde","\u0ce0"-"\u0ce1","\u0ce6"-"\u0cef","\u0d02"-"\u0d03","\u0d05"-"\u0d0c","\u0d0e"-"\u0d10","\u0d12"-"\u0d28","\u0d2a"-"\u0d39","\u0d3e"-"\u0d43","\u0d46"-"\u0d48","\u0d4a"-"\u0d4d","\u0d57","\u0d60"-"\u0d61","\u0d66"-"\u0d6f","\u0d82"-"\u0d83","\u0d85"-"\u0d96","\u0d9a"-"\u0db1","\u0db3"-"\u0dbb","\u0dbd","\u0dc0"-"\u0dc6","\u0dca","\u0dcf"-"\u0dd4","\u0dd6","\u0dd8"-"\u0ddf","\u0df2"-"\u0df3","\u0e01"-"\u0e3a","\u0e3f"-"\u0e4e","\u0e50"-"\u0e59","\u0e81"-"\u0e82","\u0e84","\u0e87"-"\u0e88","\u0e8a","\u0e8d","\u0e94"-"\u0e97","\u0e99"-"\u0e9f","\u0ea1"-"\u0ea3","\u0ea5","\u0ea7","\u0eaa"-"\u0eab","\u0ead"-"\u0eb9","\u0ebb"-"\u0ebd","\u0ec0"-"\u0ec4","\u0ec6","\u0ec8"-"\u0ecd","\u0ed0"-"\u0ed9","\u0edc"-"\u0edd","\u0f00","\u0f18"-"\u0f19","\u0f20"-"\u0f29","\u0f35","\u0f37","\u0f39","\u0f3e"-"\u0f47","\u0f49"-"\u0f6a","\u0f71"-"\u0f84","\u0f86"-"\u0f8b","\u0f90"-"\u0f97","\u0f99"-"\u0fbc","\u0fc6","\u1000"-"\u1021","\u1023"-"\u1027","\u1029"-"\u102a","\u102c"-"\u1032","\u1036"-"\u1039","\u1040"-"\u1049","\u1050"-"\u1059","\u10a0"-"\u10c5","\u10d0"-"\u10f6","\u1100"-"\u1159","\u115f"-"\u11a2","\u11a8"-"\u11f9","\u1200"-"\u1206","\u1208"-"\u1246","\u1248","\u124a"-"\u124d","\u1250"-"\u1256","\u1258","\u125a"-"\u125d","\u1260"-"\u1286","\u1288","\u128a"-"\u128d","\u1290"-"\u12ae","\u12b0","\u12b2"-"\u12b5","\u12b8"-"\u12be","\u12c0","\u12c2"-"\u12c5","\u12c8"-"\u12ce","\u12d0"-"\u12d6","\u12d8"-"\u12ee","\u12f0"-"\u130e","\u1310","\u1312"-"\u1315","\u1318"-"\u131e","\u1320"-"\u1346","\u1348"-"\u135a","\u1369"-"\u1371","\u13a0"-"\u13f4","\u1401"-"\u166c","\u166f"-"\u1676","\u1681"-"\u169a","\u16a0"-"\u16ea","\u1780"-"\u17d3","\u17db","\u17e0"-"\u17e9","\u180b"-"\u180e","\u1810"-"\u1819","\u1820"-"\u1877","\u1880"-"\u18a9","\u1e00"-"\u1e9b","\u1ea0"-"\u1ef9","\u1f00"-"\u1f15","\u1f18"-"\u1f1d","\u1f20"-"\u1f45","\u1f48"-"\u1f4d","\u1f50"-"\u1f57","\u1f59","\u1f5b","\u1f5d","\u1f5f"-"\u1f7d","\u1f80"-"\u1fb4","\u1fb6"-"\u1fbc","\u1fbe","\u1fc2"-"\u1fc4","\u1fc6"-"\u1fcc","\u1fd0"-"\u1fd3","\u1fd6"-"\u1fdb","\u1fe0"-"\u1fec","\u1ff2"-"\u1ff4","\u1ff6"-"\u1ffc","\u200c"-"\u200f","\u202a"-"\u202e","\u203f"-"\u2040","\u206a"-"\u206f","\u207f","\u20a0"-"\u20af","\u20d0"-"\u20dc","\u20e1","\u2102","\u2107","\u210a"-"\u2113","\u2115","\u2119"-"\u211d","\u2124","\u2126","\u2128","\u212a"-"\u212d","\u212f"-"\u2131","\u2133"-"\u2139","\u2160"-"\u2183","\u3005"-"\u3007","\u3021"-"\u302f","\u3031"-"\u3035","\u3038"-"\u303a","\u3041"-"\u3094","\u3099"-"\u309a","\u309d"-"\u309e","\u30a1"-"\u30fe","\u3105"-"\u312c","\u3131"-"\u318e","\u31a0"-"\u31b7","\u3400"-"\u4db5","\u4e00"-"\u9fa5","\ua000"-"\ua48c","\uac00"-"\ud7a3","\uf900"-"\ufa2d","\ufb00"-"\ufb06","\ufb13"-"\ufb17","\ufb1d"-"\ufb28","\ufb2a"-"\ufb36","\ufb38"-"\ufb3c","\ufb3e","\ufb40"-"\ufb41","\ufb43"-"\ufb44","\ufb46"-"\ufbb1","\ufbd3"-"\ufd3d","\ufd50"-"\ufd8f","\ufd92"-"\ufdc7","\ufdf0"-"\ufdfb","\ufe20"-"\ufe23","\ufe33"-"\ufe34","\ufe4d"-"\ufe4f","\ufe69","\ufe70"-"\ufe72","\ufe74","\ufe76"-"\ufefc","\ufeff","\uff04","\uff10"-"\uff19","\uff21"-"\uff3a","\uff3f","\uff41"-"\uff5a","\uff65"-"\uffbe","\uffc2"-"\uffc7","\uffca"-"\uffcf","\uffd2"-"\uffd7","\uffda"-"\uffdc","\uffe0"-"\uffe1","\uffe5"-"\uffe6","\ufff9"-"\ufffb"]> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* SEPARATORS */</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> TOKEN : { | |
<LPAREN: "("> | |
| <RPAREN: ")"> | |
| <LBRACE: "{"> | |
| <RBRACE: "}"> | |
| <LBRACK: "["> | |
| <RBRACK: "]"> | |
| <COLON: ":"> | |
| <SEMICOLON: ";"> | |
| <COMMA: ","> | |
| <AT: "@"> | |
| <EQUALS: "="> | |
| <DOT: "."> | |
| <DASH: "-"> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
<!-- Token --> | |
<TR> | |
<TD> | |
<PRE> | |
<DEFAULT> TOKEN : { | |
<LT: "<"> | |
| <GT: ">"> | |
| <TICK: "`"> | |
} | |
</PRE> | |
</TD> | |
</TR> | |
</TABLE> | |
<H2 ALIGN=CENTER>NON-TERMINALS</H2> | |
<TABLE> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/******************************************** | |
* THE AVRO IDL LANGUAGE GRAMMAR STARTS HERE * | |
********************************************/ | |
/** | |
* The input to Idl is a CompilationUnit, which is currently | |
* just a single Protocol. | |
*/</PRE> | |
</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod1">CompilationUnit</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod2">ProtocolDeclaration</A> ( "\u001a" )? ( <STUFF_TO_IGNORE: ~[]> )? <EOF></TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/* | |
* Declaration syntax follows. | |
*/</PRE> | |
</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod3">NamedSchemaDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod4">FixedDeclaration</A> | <A HREF="#prod5">EnumDeclaration</A> | <A HREF="#prod6">RecordDeclaration</A> )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod7">UnionDefinition</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"union" "{" <A HREF="#prod8">Type</A> ( "," <A HREF="#prod8">Type</A> )* "}"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod2">ProtocolDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod9">SchemaProperty</A> )* "protocol" <A HREF="#prod10">Identifier</A> <A HREF="#prod11">ProtocolBody</A></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod5">EnumDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"enum" <A HREF="#prod10">Identifier</A> <A HREF="#prod12">EnumBody</A></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod12">EnumBody</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"{" ( <A HREF="#prod13">EnumConstant</A> ( "," <A HREF="#prod13">EnumConstant</A> )* )? "}"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod13">EnumConstant</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod10">Identifier</A></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod11">ProtocolBody</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"{" ( <IMPORT> ( ( ( <A HREF="#prod14">ImportIdl</A> | <A HREF="#prod15">ImportProtocol</A> ) ) | <A HREF="#prod16">ImportSchema</A> ) | ( <A HREF="#prod9">SchemaProperty</A> )* ( <A HREF="#prod3">NamedSchemaDeclaration</A> | <A HREF="#prod17">MessageDeclaration</A> ) )* "}"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod14">ImportIdl</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><IDL> <A HREF="#prod18">JsonString</A> ";"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod15">ImportProtocol</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><PROTOCOL> <A HREF="#prod18">JsonString</A> ";"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod16">ImportSchema</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><SCHEMA> <A HREF="#prod18">JsonString</A> ";"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod4">FixedDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"fixed" <A HREF="#prod10">Identifier</A> "(" <INTEGER_LITERAL> ")" ";"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod6">RecordDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( "record" | "error" ) <A HREF="#prod10">Identifier</A> "{" ( <A HREF="#prod19">FieldDeclaration</A> )* "}"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod9">SchemaProperty</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"@" <A HREF="#prod20">PropertyName</A> "(" <A HREF="#prod21">Json</A> ")"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod19">FieldDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod9">SchemaProperty</A> )* <A HREF="#prod8">Type</A> <A HREF="#prod22">VariableDeclarator</A> ( "," <A HREF="#prod22">VariableDeclarator</A> )* ";"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod22">VariableDeclarator</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod9">SchemaProperty</A> )* <A HREF="#prod10">Identifier</A> ( <EQUALS> <A HREF="#prod21">Json</A> )?</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod23">MessageDocumentation</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod17">MessageDeclaration</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod23">MessageDocumentation</A> <A HREF="#prod24">ResultType</A> <A HREF="#prod10">Identifier</A> <A HREF="#prod25">FormalParameters</A> ( "oneway" | "throws" <A HREF="#prod26">ErrorList</A> )? ";"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod26">ErrorList</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod27">ReferenceType</A> ( "," <A HREF="#prod27">ReferenceType</A> )*</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod25">FormalParameters</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( "(" ( <A HREF="#prod28">FormalParameter</A> ( "," <A HREF="#prod28">FormalParameter</A> )* )? ")" )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod28">FormalParameter</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod8">Type</A> <A HREF="#prod22">VariableDeclarator</A></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod8">Type</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod9">SchemaProperty</A> )* ( <A HREF="#prod27">ReferenceType</A> | <A HREF="#prod29">PrimitiveType</A> | <A HREF="#prod7">UnionDefinition</A> | <A HREF="#prod30">ArrayType</A> | <A HREF="#prod31">MapType</A> )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod30">ArrayType</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"array" "<" <A HREF="#prod8">Type</A> ">"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod31">MapType</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"map" "<" <A HREF="#prod8">Type</A> ">"</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/** | |
* A reference to some other existing type | |
*/</PRE> | |
</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod27">ReferenceType</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod10">Identifier</A> ( "." <A HREF="#prod32">AnyIdentifier</A> )* )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod29">PrimitiveType</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"boolean"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"bytes"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"int"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"string"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"float"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"double"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"long"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"null"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"date"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"time_ms"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"timestamp_ms"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"decimal"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod33">DecimalTypeProperties</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"(" "," ")"</TD> | |
</TR> | |
<!-- Special token --> | |
<TR> | |
<TD> | |
<PRE> | |
/** | |
* Result types are like other types, except we provide "void" as | |
* an alias of "null" | |
*/</PRE> | |
</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod24">ResultType</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"void"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod8">Type</A></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod20">PropertyName</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><IDENTIFIER> ( <DASH> <IDENTIFIER> )*</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod10">Identifier</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <IDENTIFIER> )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>|</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( "`" <A HREF="#prod32">AnyIdentifier</A> "`" )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod32">AnyIdentifier</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <ARRAY> | <BOOLEAN> | <DOUBLE> | <ENUM> | <ERROR> | <FALSE> | <FIXED> | <FLOAT> | <INT> | <LONG> | <MAP> | <BYTES> | <STRING> | <PROTOCOL> | <RECORD> | <THROWS> | <TRUE> | <UNION> | <VOID> | <DATE> | <TIME> | <TIMESTAMP> | <DECIMAL> | <IDENTIFIER> )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod21">Json</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>( <A HREF="#prod18">JsonString</A> | ( <INTEGER_LITERAL> ) | ( <FLOATING_POINT_LITERAL> ) | <A HREF="#prod34">JsonObject</A> | <A HREF="#prod35">JsonArray</A> | ( "true" ) | ( "false" ) | ( "null" ) )</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod18">JsonString</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><STRING_LITERAL></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod34">JsonObject</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE>"{" ( <A HREF="#prod36">JsonFields</A> )? "}"</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod36">JsonFields</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod37">JsonPair</A> ( "," <A HREF="#prod36">JsonFields</A> )?</TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod37">JsonPair</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod18">JsonString</A> <COLON> <A HREF="#prod21">Json</A></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod35">JsonArray</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><LBRACK> ( <A HREF="#prod38">JsonElements</A> )? <RBRACK></TD> | |
</TR> | |
<TR> | |
<TD ALIGN=RIGHT VALIGN=BASELINE><A NAME="prod38">JsonElements</A></TD> | |
<TD ALIGN=CENTER VALIGN=BASELINE>::=</TD> | |
<TD ALIGN=LEFT VALIGN=BASELINE><A HREF="#prod21">Json</A> ( "," <A HREF="#prod38">JsonElements</A> )?</TD> | |
</TR> | |
</TABLE> | |
</BODY> | |
</HTML> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment