@ -237,6 +237,7 @@ function peg$parse(input, options) {
return new ast . Grammar (
return new ast . Grammar (
extractOptional ( initializer , 0 ) ,
extractOptional ( initializer , 0 ) ,
extractList ( rules , 0 ) ,
extractList ( rules , 0 ) ,
comments ,
location ( )
location ( )
) ;
) ;
} ;
} ;
@ -311,25 +312,31 @@ function peg$parse(input, options) {
var peg$f11 = function ( operator , code ) {
var peg$f11 = function ( operator , code ) {
return createNode ( OPS _TO _SEMANTIC _PREDICATE _TYPES [ operator ] , { code : code } ) ;
return createNode ( OPS _TO _SEMANTIC _PREDICATE _TYPES [ operator ] , { code : code } ) ;
} ;
} ;
var peg$f12 = function ( name ) { return [ name , location ( ) ] ; } ;
var peg$f12 = function ( comment ) {
var peg$f13 = function ( head , tail ) { return head + tail . join ( "" ) ; } ;
return addComment ( comment , true ) ;
var peg$f14 = function ( sequence ) { return sequence ; } ;
} ;
var peg$f15 = function ( value , ignoreCase ) {
var peg$f13 = function ( comment ) {
return addComment ( comment , false ) ;
} ;
var peg$f14 = function ( name ) { return [ name , location ( ) ] ; } ;
var peg$f15 = function ( head , tail ) { return head + tail . join ( "" ) ; } ;
var peg$f16 = function ( sequence ) { return sequence ; } ;
var peg$f17 = function ( value , ignoreCase ) {
return createNode ( "literal" , {
return createNode ( "literal" , {
value : value ,
value : value ,
ignoreCase : ignoreCase !== null ,
ignoreCase : ignoreCase !== null ,
} ) ;
} ) ;
} ;
} ;
var peg$f16 = function ( chars ) { return chars . join ( "" ) ; } ;
var peg$f1 8 = function ( chars ) { return chars . join ( "" ) ; } ;
var peg$f1 7 = function ( ) { return text ( ) ; } ;
var peg$f1 9 = function ( ) { return text ( ) ; } ;
var peg$f 18 = function ( inverted , parts , ignoreCase ) {
var peg$f 20 = function ( inverted , parts , ignoreCase ) {
return createNode ( "class" , {
return createNode ( "class" , {
parts : parts . filter ( part => part !== "" ) ,
parts : parts . filter ( part => part !== "" ) ,
inverted : inverted !== null ,
inverted : inverted !== null ,
ignoreCase : ignoreCase !== null ,
ignoreCase : ignoreCase !== null ,
} ) ;
} ) ;
} ;
} ;
var peg$f 19 = function ( begin , end ) {
var peg$f 2 1 = function ( begin , end ) {
if ( begin . charCodeAt ( 0 ) > end . charCodeAt ( 0 ) ) {
if ( begin . charCodeAt ( 0 ) > end . charCodeAt ( 0 ) ) {
error (
error (
"Invalid character range: " + text ( ) + "."
"Invalid character range: " + text ( ) + "."
@ -338,20 +345,20 @@ function peg$parse(input, options) {
return [ begin , end ] ;
return [ begin , end ] ;
} ;
} ;
var peg$f2 0 = function ( ) { return "" ; } ;
var peg$f2 2 = function ( ) { return "" ; } ;
var peg$f2 1 = function ( ) { return "\0" ; } ;
var peg$f2 3 = function ( ) { return "\0" ; } ;
var peg$f2 2 = function ( ) { return "\b" ; } ;
var peg$f2 4 = function ( ) { return "\b" ; } ;
var peg$f2 3 = function ( ) { return "\f" ; } ;
var peg$f2 5 = function ( ) { return "\f" ; } ;
var peg$f2 4 = function ( ) { return "\n" ; } ;
var peg$f2 6 = function ( ) { return "\n" ; } ;
var peg$f2 5 = function ( ) { return "\r" ; } ;
var peg$f2 7 = function ( ) { return "\r" ; } ;
var peg$f2 6 = function ( ) { return "\t" ; } ;
var peg$f2 8 = function ( ) { return "\t" ; } ;
var peg$f2 7 = function ( ) { return "\v" ; } ;
var peg$f2 9 = function ( ) { return "\v" ; } ;
var peg$f 28 = function ( digits ) {
var peg$f 30 = function ( digits ) {
return String . fromCharCode ( parseInt ( digits , 16 ) ) ;
return String . fromCharCode ( parseInt ( digits , 16 ) ) ;
} ;
} ;
var peg$f 29 = function ( ) { return createNode ( "any" , { } ) ; } ;
var peg$f 31 = function ( ) { return createNode ( "any" , { } ) ; } ;
var peg$f3 0 = function ( code ) { return code ; } ;
var peg$f3 2 = function ( code ) { return code ; } ;
var peg$f3 1 = function ( ) { error ( "Unbalanced brace." ) ; } ;
var peg$f3 3 = function ( ) { error ( "Unbalanced brace." ) ; } ;
var peg$currPos = 0 ;
var peg$currPos = 0 ;
var peg$savedPos = 0 ;
var peg$savedPos = 0 ;
@ -1353,7 +1360,7 @@ function peg$parse(input, options) {
}
}
function peg$parseMultiLineComment ( ) {
function peg$parseMultiLineComment ( ) {
var s0 , s1 , s2 , s3 , s4 , s5 ;
var s0 , s1 , s2 , s3 , s4 , s5 , s6 ;
var rule$expects = function ( expected ) {
var rule$expects = function ( expected ) {
if ( peg$silentFails === 0 ) peg$expect ( expected ) ;
if ( peg$silentFails === 0 ) peg$expect ( expected ) ;
@ -1367,68 +1374,70 @@ function peg$parse(input, options) {
s1 = peg$FAILED ;
s1 = peg$FAILED ;
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
s2 = [ ] ;
s2 = peg$currPos ;
s3 = peg$currPos ;
s3 = [ ] ;
s4 = peg$currPos ;
s4 = peg$currPos ;
s5 = peg$currPos ;
peg$begin ( ) ;
peg$begin ( ) ;
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
s 5 = peg$c23 ;
s 6 = peg$c23 ;
peg$currPos += 2 ;
peg$currPos += 2 ;
} else {
} else {
s 5 = peg$FAILED ;
s 6 = peg$FAILED ;
}
}
peg$end ( true ) ;
peg$end ( true ) ;
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 4 = undefined ;
s 5 = undefined ;
} else {
} else {
peg$currPos = s 4 ;
peg$currPos = s 5 ;
s 4 = peg$FAILED ;
s 5 = peg$FAILED ;
}
}
if ( s 4 !== peg$FAILED ) {
if ( s 5 !== peg$FAILED ) {
s 5 = peg$parseSourceCharacter ( ) ;
s 6 = peg$parseSourceCharacter ( ) ;
if ( s 5 !== peg$FAILED ) {
if ( s 6 !== peg$FAILED ) {
s 4 = [ s4 , s5 ] ;
s 5 = [ s5 , s6 ] ;
s 3 = s4 ;
s 4 = s5 ;
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
while ( s3 !== peg$FAILED ) {
while ( s4 !== peg$FAILED ) {
s2 . push ( s3 ) ;
s3 . push ( s4 ) ;
s3 = peg$currPos ;
s4 = peg$currPos ;
s4 = peg$currPos ;
s5 = peg$currPos ;
peg$begin ( ) ;
peg$begin ( ) ;
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
s 5 = peg$c23 ;
s 6 = peg$c23 ;
peg$currPos += 2 ;
peg$currPos += 2 ;
} else {
} else {
s 5 = peg$FAILED ;
s 6 = peg$FAILED ;
}
}
peg$end ( true ) ;
peg$end ( true ) ;
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 4 = undefined ;
s 5 = undefined ;
} else {
} else {
peg$currPos = s 4 ;
peg$currPos = s 5 ;
s 4 = peg$FAILED ;
s 5 = peg$FAILED ;
}
}
if ( s 4 !== peg$FAILED ) {
if ( s 5 !== peg$FAILED ) {
s 5 = peg$parseSourceCharacter ( ) ;
s 6 = peg$parseSourceCharacter ( ) ;
if ( s 5 !== peg$FAILED ) {
if ( s 6 !== peg$FAILED ) {
s 4 = [ s4 , s5 ] ;
s 5 = [ s5 , s6 ] ;
s 3 = s4 ;
s 4 = s5 ;
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
}
}
s2 = input . substring ( s2 , peg$currPos ) ;
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
s3 = peg$c23 ;
s3 = peg$c23 ;
peg$currPos += 2 ;
peg$currPos += 2 ;
@ -1436,8 +1445,8 @@ function peg$parse(input, options) {
s3 = peg$FAILED ;
s3 = peg$FAILED ;
}
}
if ( s3 !== peg$FAILED ) {
if ( s3 !== peg$FAILED ) {
s1 = [ s1 , s2 , s3 ] ;
peg$savedPos = s0 ;
s0 = s1 ;
s0 = peg$f12( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1451,7 +1460,7 @@ function peg$parse(input, options) {
}
}
function peg$parseMultiLineCommentNoLineTerminator ( ) {
function peg$parseMultiLineCommentNoLineTerminator ( ) {
var s0 , s1 , s2 , s3 , s4 , s5 ;
var s0 , s1 , s2 , s3 , s4 , s5 , s6 ;
var rule$expects = function ( expected ) {
var rule$expects = function ( expected ) {
if ( peg$silentFails === 0 ) peg$expect ( expected ) ;
if ( peg$silentFails === 0 ) peg$expect ( expected ) ;
@ -1466,76 +1475,78 @@ function peg$parse(input, options) {
s1 = peg$FAILED ;
s1 = peg$FAILED ;
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
s2 = [ ] ;
s2 = peg$currPos ;
s3 = peg$currPos ;
s3 = [ ] ;
s4 = peg$currPos ;
s4 = peg$currPos ;
s5 = peg$currPos ;
peg$begin ( ) ;
peg$begin ( ) ;
rule$expects ( peg$e17 ) ;
rule$expects ( peg$e17 ) ;
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
s 5 = peg$c23 ;
s 6 = peg$c23 ;
peg$currPos += 2 ;
peg$currPos += 2 ;
} else {
} else {
s 5 = peg$FAILED ;
s 6 = peg$FAILED ;
}
}
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 5 = peg$parseLineTerminator ( ) ;
s 6 = peg$parseLineTerminator ( ) ;
}
}
peg$end ( true ) ;
peg$end ( true ) ;
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 4 = undefined ;
s 5 = undefined ;
} else {
} else {
peg$currPos = s 4 ;
peg$currPos = s 5 ;
s 4 = peg$FAILED ;
s 5 = peg$FAILED ;
}
}
if ( s 4 !== peg$FAILED ) {
if ( s 5 !== peg$FAILED ) {
s 5 = peg$parseSourceCharacter ( ) ;
s 6 = peg$parseSourceCharacter ( ) ;
if ( s 5 !== peg$FAILED ) {
if ( s 6 !== peg$FAILED ) {
s 4 = [ s4 , s5 ] ;
s 5 = [ s5 , s6 ] ;
s 3 = s4 ;
s 4 = s5 ;
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
while ( s3 !== peg$FAILED ) {
while ( s4 !== peg$FAILED ) {
s2 . push ( s3 ) ;
s3 . push ( s4 ) ;
s3 = peg$currPos ;
s4 = peg$currPos ;
s4 = peg$currPos ;
s5 = peg$currPos ;
peg$begin ( ) ;
peg$begin ( ) ;
rule$expects ( peg$e17 ) ;
rule$expects ( peg$e17 ) ;
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
s 5 = peg$c23 ;
s 6 = peg$c23 ;
peg$currPos += 2 ;
peg$currPos += 2 ;
} else {
} else {
s 5 = peg$FAILED ;
s 6 = peg$FAILED ;
}
}
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 5 = peg$parseLineTerminator ( ) ;
s 6 = peg$parseLineTerminator ( ) ;
}
}
peg$end ( true ) ;
peg$end ( true ) ;
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 4 = undefined ;
s 5 = undefined ;
} else {
} else {
peg$currPos = s 4 ;
peg$currPos = s 5 ;
s 4 = peg$FAILED ;
s 5 = peg$FAILED ;
}
}
if ( s 4 !== peg$FAILED ) {
if ( s 5 !== peg$FAILED ) {
s 5 = peg$parseSourceCharacter ( ) ;
s 6 = peg$parseSourceCharacter ( ) ;
if ( s 5 !== peg$FAILED ) {
if ( s 6 !== peg$FAILED ) {
s 4 = [ s4 , s5 ] ;
s 5 = [ s5 , s6 ] ;
s 3 = s4 ;
s 4 = s5 ;
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
}
}
s2 = input . substring ( s2 , peg$currPos ) ;
rule$expects ( peg$e17 ) ;
rule$expects ( peg$e17 ) ;
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
if ( input . substr ( peg$currPos , 2 ) === peg$c23 ) {
s3 = peg$c23 ;
s3 = peg$c23 ;
@ -1544,8 +1555,8 @@ function peg$parse(input, options) {
s3 = peg$FAILED ;
s3 = peg$FAILED ;
}
}
if ( s3 !== peg$FAILED ) {
if ( s3 !== peg$FAILED ) {
s1 = [ s1 , s2 , s3 ] ;
peg$savedPos = s0 ;
s0 = s1 ;
s0 = peg$f12( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1559,7 +1570,7 @@ function peg$parse(input, options) {
}
}
function peg$parseSingleLineComment ( ) {
function peg$parseSingleLineComment ( ) {
var s0 , s1 , s2 , s3 , s4 , s5 ;
var s0 , s1 , s2 , s3 , s4 , s5 , s6 ;
var rule$expects = function ( expected ) {
var rule$expects = function ( expected ) {
if ( peg$silentFails === 0 ) peg$expect ( expected ) ;
if ( peg$silentFails === 0 ) peg$expect ( expected ) ;
@ -1574,60 +1585,62 @@ function peg$parse(input, options) {
s1 = peg$FAILED ;
s1 = peg$FAILED ;
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
s2 = [ ] ;
s2 = peg$currPos ;
s3 = peg$currPos ;
s3 = [ ] ;
s4 = peg$currPos ;
s4 = peg$currPos ;
s5 = peg$currPos ;
peg$begin ( ) ;
peg$begin ( ) ;
s 5 = peg$parseLineTerminator ( ) ;
s 6 = peg$parseLineTerminator ( ) ;
peg$end ( true ) ;
peg$end ( true ) ;
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 4 = undefined ;
s 5 = undefined ;
} else {
} else {
peg$currPos = s 4 ;
peg$currPos = s 5 ;
s 4 = peg$FAILED ;
s 5 = peg$FAILED ;
}
}
if ( s 4 !== peg$FAILED ) {
if ( s 5 !== peg$FAILED ) {
s 5 = peg$parseSourceCharacter ( ) ;
s 6 = peg$parseSourceCharacter ( ) ;
if ( s 5 !== peg$FAILED ) {
if ( s 6 !== peg$FAILED ) {
s 4 = [ s4 , s5 ] ;
s 5 = [ s5 , s6 ] ;
s 3 = s4 ;
s 4 = s5 ;
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
while ( s3 !== peg$FAILED ) {
while ( s4 !== peg$FAILED ) {
s2 . push ( s3 ) ;
s3 . push ( s4 ) ;
s3 = peg$currPos ;
s4 = peg$currPos ;
s4 = peg$currPos ;
s5 = peg$currPos ;
peg$begin ( ) ;
peg$begin ( ) ;
s 5 = peg$parseLineTerminator ( ) ;
s 6 = peg$parseLineTerminator ( ) ;
peg$end ( true ) ;
peg$end ( true ) ;
if ( s 5 === peg$FAILED ) {
if ( s 6 === peg$FAILED ) {
s 4 = undefined ;
s 5 = undefined ;
} else {
} else {
peg$currPos = s 4 ;
peg$currPos = s 5 ;
s 4 = peg$FAILED ;
s 5 = peg$FAILED ;
}
}
if ( s 4 !== peg$FAILED ) {
if ( s 5 !== peg$FAILED ) {
s 5 = peg$parseSourceCharacter ( ) ;
s 6 = peg$parseSourceCharacter ( ) ;
if ( s 5 !== peg$FAILED ) {
if ( s 6 !== peg$FAILED ) {
s 4 = [ s4 , s5 ] ;
s 5 = [ s5 , s6 ] ;
s 3 = s4 ;
s 4 = s5 ;
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
} else {
} else {
peg$currPos = s 3 ;
peg$currPos = s 4 ;
s 3 = peg$FAILED ;
s 4 = peg$FAILED ;
}
}
}
}
s1 = [ s1 , s2 ] ;
s2 = input . substring ( s2 , peg$currPos ) ;
s0 = s1 ;
peg$savedPos = s0 ;
s0 = peg$f13 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1647,7 +1660,7 @@ function peg$parse(input, options) {
s1 = peg$parseIdentifierName ( ) ;
s1 = peg$parseIdentifierName ( ) ;
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f1 2 ( s1 ) ;
s1 = peg$f1 4 ( s1 ) ;
}
}
s0 = s1 ;
s0 = s1 ;
@ -1673,7 +1686,7 @@ function peg$parse(input, options) {
s3 = peg$parseIdentifierPart ( ) ;
s3 = peg$parseIdentifierPart ( ) ;
}
}
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 3 ( s1 , s2 ) ;
s0 = peg$f1 5 ( s1 , s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1717,7 +1730,7 @@ function peg$parse(input, options) {
s2 = peg$parseUnicodeEscapeSequence ( ) ;
s2 = peg$parseUnicodeEscapeSequence ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 4 ( s2 ) ;
s0 = peg$f1 6 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1834,7 +1847,7 @@ function peg$parse(input, options) {
s2 = null ;
s2 = null ;
}
}
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 5 ( s1 , s2 ) ;
s0 = peg$f1 7 ( s1 , s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1875,7 +1888,7 @@ function peg$parse(input, options) {
}
}
if ( s3 !== peg$FAILED ) {
if ( s3 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 6 ( s2 ) ;
s0 = peg$f1 8 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1907,7 +1920,7 @@ function peg$parse(input, options) {
}
}
if ( s3 !== peg$FAILED ) {
if ( s3 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 6 ( s2 ) ;
s0 = peg$f1 8 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1960,7 +1973,7 @@ function peg$parse(input, options) {
s2 = peg$parseSourceCharacter ( ) ;
s2 = peg$parseSourceCharacter ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 7 ( ) ;
s0 = peg$f1 9 ( ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -1981,7 +1994,7 @@ function peg$parse(input, options) {
s2 = peg$parseEscapeSequence ( ) ;
s2 = peg$parseEscapeSequence ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 4 ( s2 ) ;
s0 = peg$f1 6 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2036,7 +2049,7 @@ function peg$parse(input, options) {
s2 = peg$parseSourceCharacter ( ) ;
s2 = peg$parseSourceCharacter ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 7 ( ) ;
s0 = peg$f1 9 ( ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2057,7 +2070,7 @@ function peg$parse(input, options) {
s2 = peg$parseEscapeSequence ( ) ;
s2 = peg$parseEscapeSequence ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 4 ( s2 ) ;
s0 = peg$f1 6 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2129,7 +2142,7 @@ function peg$parse(input, options) {
s5 = null ;
s5 = null ;
}
}
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f 18 ( s2 , s3 , s5 ) ;
s0 = peg$f 20 ( s2 , s3 , s5 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2163,7 +2176,7 @@ function peg$parse(input, options) {
s3 = peg$parseClassCharacter ( ) ;
s3 = peg$parseClassCharacter ( ) ;
if ( s3 !== peg$FAILED ) {
if ( s3 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f 19 ( s1 , s3 ) ;
s0 = peg$f 2 1( s1 , s3 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2218,7 +2231,7 @@ function peg$parse(input, options) {
s2 = peg$parseSourceCharacter ( ) ;
s2 = peg$parseSourceCharacter ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 7 ( ) ;
s0 = peg$f1 9 ( ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2239,7 +2252,7 @@ function peg$parse(input, options) {
s2 = peg$parseEscapeSequence ( ) ;
s2 = peg$parseEscapeSequence ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 4 ( s2 ) ;
s0 = peg$f1 6 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2274,7 +2287,7 @@ function peg$parse(input, options) {
s2 = peg$parseLineTerminatorSequence ( ) ;
s2 = peg$parseLineTerminatorSequence ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f2 0 ( ) ;
s0 = peg$f2 2 ( ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2316,7 +2329,7 @@ function peg$parse(input, options) {
}
}
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f2 1 ( ) ;
s0 = peg$f2 3 ( ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2388,7 +2401,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f2 2 ( ) ;
s1 = peg$f2 4 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
if ( s0 === peg$FAILED ) {
if ( s0 === peg$FAILED ) {
@ -2401,7 +2414,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f2 3 ( ) ;
s1 = peg$f2 5 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
if ( s0 === peg$FAILED ) {
if ( s0 === peg$FAILED ) {
@ -2414,7 +2427,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f2 4 ( ) ;
s1 = peg$f2 6 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
if ( s0 === peg$FAILED ) {
if ( s0 === peg$FAILED ) {
@ -2427,7 +2440,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f2 5 ( ) ;
s1 = peg$f2 7 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
if ( s0 === peg$FAILED ) {
if ( s0 === peg$FAILED ) {
@ -2440,7 +2453,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f2 6 ( ) ;
s1 = peg$f2 8 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
if ( s0 === peg$FAILED ) {
if ( s0 === peg$FAILED ) {
@ -2453,7 +2466,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f2 7 ( ) ;
s1 = peg$f2 9 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
}
}
@ -2493,7 +2506,7 @@ function peg$parse(input, options) {
s2 = peg$parseSourceCharacter ( ) ;
s2 = peg$parseSourceCharacter ( ) ;
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f1 7 ( ) ;
s0 = peg$f1 9 ( ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2575,7 +2588,7 @@ function peg$parse(input, options) {
}
}
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f 28 ( s2 ) ;
s0 = peg$f 30 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2638,7 +2651,7 @@ function peg$parse(input, options) {
}
}
if ( s2 !== peg$FAILED ) {
if ( s2 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f 28 ( s2 ) ;
s0 = peg$f 30 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2702,7 +2715,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f 29 ( ) ;
s1 = peg$f 31 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
@ -2735,7 +2748,7 @@ function peg$parse(input, options) {
}
}
if ( s3 !== peg$FAILED ) {
if ( s3 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s0 = peg$f3 0 ( s2 ) ;
s0 = peg$f3 2 ( s2 ) ;
} else {
} else {
peg$currPos = s0 ;
peg$currPos = s0 ;
s0 = peg$FAILED ;
s0 = peg$FAILED ;
@ -2754,7 +2767,7 @@ function peg$parse(input, options) {
}
}
if ( s1 !== peg$FAILED ) {
if ( s1 !== peg$FAILED ) {
peg$savedPos = s0 ;
peg$savedPos = s0 ;
s1 = peg$f3 1 ( ) ;
s1 = peg$f3 3 ( ) ;
}
}
s0 = s1 ;
s0 = s1 ;
}
}
@ -3364,6 +3377,20 @@ function peg$parse(input, options) {
return util . enforceFastProperties ( node ) ;
return util . enforceFastProperties ( node ) ;
}
}
let comments = options . extractComments ? { } : null ;
function addComment ( comment , multiline ) {
if ( options . extractComments ) {
let loc = location ( ) ;
comment = {
text : comment ,
multiline : multiline ,
location : loc
} ;
comments [ loc . start . offset ] = comment ;
return comment ;
}
}
peg$begin ( ) ;
peg$begin ( ) ;
peg$result = peg$startRuleFunction ( ) ;
peg$result = peg$startRuleFunction ( ) ;