Make example grammars compatible with Rhino

redux
David Majda 14 years ago
parent a93ad0a5b8
commit 5f810f803b

@ -180,7 +180,7 @@ simple_selector
} }
class class
= "." class:IDENT { return { type: "class_selector", "class": class }; } = "." class_:IDENT { return { type: "class_selector", "class": class_ }; }
element_name element_name
= IDENT / '*' = IDENT / '*'
@ -298,7 +298,7 @@ unicode
escape escape
= unicode = unicode
/ "\\" char:[^\r\n\f0-9a-fA-F] { return char; } / "\\" char_:[^\r\n\f0-9a-fA-F] { return char_; }
nmstart nmstart
= [_a-zA-Z] = [_a-zA-Z]
@ -386,91 +386,91 @@ G
= [gG] = [gG]
/ "\\" "0"? "0"? "0"? "0"? "47" ("\r\n" / [ \t\r\n\f])? { return "G"; } / "\\" "0"? "0"? "0"? "0"? "47" ("\r\n" / [ \t\r\n\f])? { return "G"; }
/ "\\" "0"? "0"? "0"? "0"? "67" ("\r\n" / [ \t\r\n\f])? { return "g"; } / "\\" "0"? "0"? "0"? "0"? "67" ("\r\n" / [ \t\r\n\f])? { return "g"; }
/ "\\" char:[gG] { return char; } / "\\" char_:[gG] { return char_; }
H H
= h:[hH] = h:[hH]
/ "\\" "0"? "0"? "0"? "0"? "48" ("\r\n" / [ \t\r\n\f])? { return "H"; } / "\\" "0"? "0"? "0"? "0"? "48" ("\r\n" / [ \t\r\n\f])? { return "H"; }
/ "\\" "0"? "0"? "0"? "0"? "68" ("\r\n" / [ \t\r\n\f])? { return "h"; } / "\\" "0"? "0"? "0"? "0"? "68" ("\r\n" / [ \t\r\n\f])? { return "h"; }
/ "\\" char:[hH] { return char; } / "\\" char_:[hH] { return char_; }
I I
= i:[iI] = i:[iI]
/ "\\" "0"? "0"? "0"? "0"? "49" ("\r\n" / [ \t\r\n\f])? { return "I"; } / "\\" "0"? "0"? "0"? "0"? "49" ("\r\n" / [ \t\r\n\f])? { return "I"; }
/ "\\" "0"? "0"? "0"? "0"? "69" ("\r\n" / [ \t\r\n\f])? { return "i"; } / "\\" "0"? "0"? "0"? "0"? "69" ("\r\n" / [ \t\r\n\f])? { return "i"; }
/ "\\" char:[iI] { return char; } / "\\" char_:[iI] { return char_; }
K K
= [kK] = [kK]
/ "\\" "0"? "0"? "0"? "0"? "4" [bB] ("\r\n" / [ \t\r\n\f])? { return "K"; } / "\\" "0"? "0"? "0"? "0"? "4" [bB] ("\r\n" / [ \t\r\n\f])? { return "K"; }
/ "\\" "0"? "0"? "0"? "0"? "6" [bB] ("\r\n" / [ \t\r\n\f])? { return "k"; } / "\\" "0"? "0"? "0"? "0"? "6" [bB] ("\r\n" / [ \t\r\n\f])? { return "k"; }
/ "\\" char:[kK] { return char; } / "\\" char_:[kK] { return char_; }
L L
= [lL] = [lL]
/ "\\" "0"? "0"? "0"? "0"? "4" [cC] ("\r\n" / [ \t\r\n\f])? { return "L"; } / "\\" "0"? "0"? "0"? "0"? "4" [cC] ("\r\n" / [ \t\r\n\f])? { return "L"; }
/ "\\" "0"? "0"? "0"? "0"? "6" [cC] ("\r\n" / [ \t\r\n\f])? { return "l"; } / "\\" "0"? "0"? "0"? "0"? "6" [cC] ("\r\n" / [ \t\r\n\f])? { return "l"; }
/ "\\" char:[lL] { return char; } / "\\" char_:[lL] { return char_; }
M M
= [mM] = [mM]
/ "\\" "0"? "0"? "0"? "0"? "4" [dD] ("\r\n" / [ \t\r\n\f])? { return "M"; } / "\\" "0"? "0"? "0"? "0"? "4" [dD] ("\r\n" / [ \t\r\n\f])? { return "M"; }
/ "\\" "0"? "0"? "0"? "0"? "6" [dD] ("\r\n" / [ \t\r\n\f])? { return "m"; } / "\\" "0"? "0"? "0"? "0"? "6" [dD] ("\r\n" / [ \t\r\n\f])? { return "m"; }
/ "\\" char:[mM] { return char; } / "\\" char_:[mM] { return char_; }
N N
= [nN] = [nN]
/ "\\" "0"? "0"? "0"? "0"? "4" [eE] ("\r\n" / [ \t\r\n\f])? { return "N"; } / "\\" "0"? "0"? "0"? "0"? "4" [eE] ("\r\n" / [ \t\r\n\f])? { return "N"; }
/ "\\" "0"? "0"? "0"? "0"? "6" [eE] ("\r\n" / [ \t\r\n\f])? { return "n"; } / "\\" "0"? "0"? "0"? "0"? "6" [eE] ("\r\n" / [ \t\r\n\f])? { return "n"; }
/ "\\" char:[nN] { return char; } / "\\" char_:[nN] { return char_; }
O O
= [oO] = [oO]
/ "\\" "0"? "0"? "0"? "0"? "4" [fF] ("\r\n" / [ \t\r\n\f])? { return "O"; } / "\\" "0"? "0"? "0"? "0"? "4" [fF] ("\r\n" / [ \t\r\n\f])? { return "O"; }
/ "\\" "0"? "0"? "0"? "0"? "6" [fF] ("\r\n" / [ \t\r\n\f])? { return "o"; } / "\\" "0"? "0"? "0"? "0"? "6" [fF] ("\r\n" / [ \t\r\n\f])? { return "o"; }
/ "\\" char:[oO] { return char; } / "\\" char_:[oO] { return char_; }
P P
= [pP] = [pP]
/ "\\" "0"? "0"? "0"? "0"? "50" ("\r\n" / [ \t\r\n\f])? { return "P"; } / "\\" "0"? "0"? "0"? "0"? "50" ("\r\n" / [ \t\r\n\f])? { return "P"; }
/ "\\" "0"? "0"? "0"? "0"? "70" ("\r\n" / [ \t\r\n\f])? { return "p"; } / "\\" "0"? "0"? "0"? "0"? "70" ("\r\n" / [ \t\r\n\f])? { return "p"; }
/ "\\" char:[pP] { return char; } / "\\" char_:[pP] { return char_; }
R R
= [rR] = [rR]
/ "\\" "0"? "0"? "0"? "0"? "52" ("\r\n" / [ \t\r\n\f])? { return "R"; } / "\\" "0"? "0"? "0"? "0"? "52" ("\r\n" / [ \t\r\n\f])? { return "R"; }
/ "\\" "0"? "0"? "0"? "0"? "72" ("\r\n" / [ \t\r\n\f])? { return "r"; } / "\\" "0"? "0"? "0"? "0"? "72" ("\r\n" / [ \t\r\n\f])? { return "r"; }
/ "\\" char:[rR] { return char; } / "\\" char_:[rR] { return char_; }
S_ S_
= [sS] = [sS]
/ "\\" "0"? "0"? "0"? "0"? "53" ("\r\n" / [ \t\r\n\f])? { return "S"; } / "\\" "0"? "0"? "0"? "0"? "53" ("\r\n" / [ \t\r\n\f])? { return "S"; }
/ "\\" "0"? "0"? "0"? "0"? "73" ("\r\n" / [ \t\r\n\f])? { return "s"; } / "\\" "0"? "0"? "0"? "0"? "73" ("\r\n" / [ \t\r\n\f])? { return "s"; }
/ "\\" char:[sS] { return char; } / "\\" char_:[sS] { return char_; }
T T
= [tT] = [tT]
/ "\\" "0"? "0"? "0"? "0"? "54" ("\r\n" / [ \t\r\n\f])? { return "T"; } / "\\" "0"? "0"? "0"? "0"? "54" ("\r\n" / [ \t\r\n\f])? { return "T"; }
/ "\\" "0"? "0"? "0"? "0"? "74" ("\r\n" / [ \t\r\n\f])? { return "t"; } / "\\" "0"? "0"? "0"? "0"? "74" ("\r\n" / [ \t\r\n\f])? { return "t"; }
/ "\\" char:[tT] { return char; } / "\\" char_:[tT] { return char_; }
U U
= [uU] = [uU]
/ "\\" "0"? "0"? "0"? "0"? "55" ("\r\n" / [ \t\r\n\f])? { return "U"; } / "\\" "0"? "0"? "0"? "0"? "55" ("\r\n" / [ \t\r\n\f])? { return "U"; }
/ "\\" "0"? "0"? "0"? "0"? "75" ("\r\n" / [ \t\r\n\f])? { return "u"; } / "\\" "0"? "0"? "0"? "0"? "75" ("\r\n" / [ \t\r\n\f])? { return "u"; }
/ "\\" char:[uU] { return char; } / "\\" char_:[uU] { return char_; }
X X
= [xX] = [xX]
/ "\\" "0"? "0"? "0"? "0"? "58" ("\r\n" / [ \t\r\n\f])? { return "X"; } / "\\" "0"? "0"? "0"? "0"? "58" ("\r\n" / [ \t\r\n\f])? { return "X"; }
/ "\\" "0"? "0"? "0"? "0"? "78" ("\r\n" / [ \t\r\n\f])? { return "x"; } / "\\" "0"? "0"? "0"? "0"? "78" ("\r\n" / [ \t\r\n\f])? { return "x"; }
/ "\\" char:[xX] { return char; } / "\\" char_:[xX] { return char_; }
Z Z
= [zZ] = [zZ]
/ "\\" "0"? "0"? "0"? "0"? "5" [aA] ("\r\n" / [ \t\r\n\f])? { return "Z"; } / "\\" "0"? "0"? "0"? "0"? "5" [aA] ("\r\n" / [ \t\r\n\f])? { return "Z"; }
/ "\\" "0"? "0"? "0"? "0"? "7" [aA] ("\r\n" / [ \t\r\n\f])? { return "z"; } / "\\" "0"? "0"? "0"? "0"? "7" [aA] ("\r\n" / [ \t\r\n\f])? { return "z"; }
/ "\\" char:[zZ] { return char; } / "\\" char_:[zZ] { return char_; }
/* Tokens */ /* Tokens */

@ -257,13 +257,13 @@ SingleStringCharacters
= chars:SingleStringCharacter+ { return chars.join(""); } = chars:SingleStringCharacter+ { return chars.join(""); }
DoubleStringCharacter DoubleStringCharacter
= !('"' / "\\" / LineTerminator) char:SourceCharacter { return char; } = !('"' / "\\" / LineTerminator) char_:SourceCharacter { return char_; }
/ "\\" sequence:EscapeSequence { return sequence; } / "\\" sequence:EscapeSequence { return sequence; }
/ LineContinuation / LineContinuation
SingleStringCharacter SingleStringCharacter
= !("'" / "\\" / LineTerminator) char:SourceCharacter { return char; } = !("'" / "\\" / LineTerminator) char_:SourceCharacter { return char_; }
/ "\\" sequence:EscapeSequence { return sequence; } / "\\" sequence:EscapeSequence { return sequence; }
/ LineContinuation / LineContinuation
LineContinuation LineContinuation
@ -280,8 +280,8 @@ CharacterEscapeSequence
/ NonEscapeCharacter / NonEscapeCharacter
SingleEscapeCharacter SingleEscapeCharacter
= char:['"\\bfnrtv] { = char_:['"\\bfnrtv] {
return char return char_
.replace("b", "\b") .replace("b", "\b")
.replace("f", "\f") .replace("f", "\f")
.replace("n", "\n") .replace("n", "\n")
@ -291,7 +291,7 @@ SingleEscapeCharacter
} }
NonEscapeCharacter NonEscapeCharacter
= (!EscapeCharacter / LineTerminator) char:SourceCharacter { return char; } = (!EscapeCharacter / LineTerminator) char_:SourceCharacter { return char_; }
EscapeCharacter EscapeCharacter
= SingleEscapeCharacter = SingleEscapeCharacter
@ -319,20 +319,20 @@ RegularExpressionLiteral "regular expression"
} }
RegularExpressionBody RegularExpressionBody
= char:RegularExpressionFirstChar chars:RegularExpressionChars { = char_:RegularExpressionFirstChar chars:RegularExpressionChars {
return char + chars; return char_ + chars;
} }
RegularExpressionChars RegularExpressionChars
= chars:RegularExpressionChar* { return chars.join(""); } = chars:RegularExpressionChar* { return chars.join(""); }
RegularExpressionFirstChar RegularExpressionFirstChar
= ![*\\/[] char:RegularExpressionNonTerminator { return char; } = ![*\\/[] char_:RegularExpressionNonTerminator { return char_; }
/ RegularExpressionBackslashSequence / RegularExpressionBackslashSequence
/ RegularExpressionClass / RegularExpressionClass
RegularExpressionChar RegularExpressionChar
= ![\\/[] char:RegularExpressionNonTerminator { return char; } = ![\\/[] char_:RegularExpressionNonTerminator { return char_; }
/ RegularExpressionBackslashSequence / RegularExpressionBackslashSequence
/ RegularExpressionClass / RegularExpressionClass
@ -341,10 +341,10 @@ RegularExpressionChar
* "RegularExpressionNonTerminator". * "RegularExpressionNonTerminator".
*/ */
RegularExpressionBackslashSequence RegularExpressionBackslashSequence
= "\\" char:RegularExpressionNonTerminator { return "\\" + char; } = "\\" char_:RegularExpressionNonTerminator { return "\\" + char_; }
RegularExpressionNonTerminator RegularExpressionNonTerminator
= !LineTerminator char:SourceCharacter { return char; } = !LineTerminator char_:SourceCharacter { return char_; }
RegularExpressionClass RegularExpressionClass
= "[" chars:RegularExpressionClassChars "]" { return "[" + chars + "]"; } = "[" chars:RegularExpressionClassChars "]" { return "[" + chars + "]"; }
@ -353,7 +353,7 @@ RegularExpressionClassChars
= chars:RegularExpressionClassChar* { return chars.join(""); } = chars:RegularExpressionClassChar* { return chars.join(""); }
RegularExpressionClassChar RegularExpressionClassChar
= ![\]\\] char:RegularExpressionNonTerminator { return char; } = ![\]\\] char_:RegularExpressionNonTerminator { return char_; }
/ RegularExpressionBackslashSequence / RegularExpressionBackslashSequence
RegularExpressionFlags RegularExpressionFlags

@ -70,10 +70,10 @@ char
} }
number "number" number "number"
= int:int frac:frac exp:exp _ { return parseFloat(int + frac + exp); } = int_:int frac:frac exp:exp _ { return parseFloat(int_ + frac + exp); }
/ int:int frac:frac _ { return parseFloat(int + frac); } / int_:int frac:frac _ { return parseFloat(int_ + frac); }
/ int:int exp:exp _ { return parseFloat(int + exp); } / int_:int exp:exp _ { return parseFloat(int_ + exp); }
/ int:int _ { return parseFloat(int); } / int_:int _ { return parseFloat(int_); }
int int
= digit19:digit19 digits:digits { return digit19 + digits; } = digit19:digit19 digits:digits { return digit19 + digits; }

Loading…
Cancel
Save