Fix comma-dangle warning from ESLint

master
Futago-za Ryuu 4 years ago
parent 56722b6d41
commit b7b87ea8ae

@ -254,7 +254,7 @@ function generateBytecode( ast, session ) {
return condCode.concat( return condCode.concat(
[ thenCode.length, elseCode.length ], [ thenCode.length, elseCode.length ],
thenCode, thenCode,
elseCode elseCode,
); );
} }
@ -291,14 +291,14 @@ function generateBytecode( ast, session ) {
buildSequence( buildSequence(
[ op.POP ], [ op.POP ],
[ negative ? op.POP : op.POP_CURR_POS ], [ negative ? op.POP : op.POP_CURR_POS ],
[ op.PUSH_UNDEFINED ] [ op.PUSH_UNDEFINED ],
), ),
buildSequence( buildSequence(
[ op.POP ], [ op.POP ],
[ negative ? op.POP_CURR_POS : op.POP ], [ negative ? op.POP_CURR_POS : op.POP ],
[ op.PUSH_FAILED ] [ op.PUSH_FAILED ],
) ),
) ),
); );
} }
@ -314,8 +314,8 @@ function generateBytecode( ast, session ) {
node.match|0, node.match|0,
[ op.IF ], [ op.IF ],
buildSequence( [ op.POP ], negative ? [ op.PUSH_FAILED ] : [ op.PUSH_UNDEFINED ] ), buildSequence( [ op.POP ], negative ? [ op.PUSH_FAILED ] : [ op.PUSH_UNDEFINED ] ),
buildSequence( [ op.POP ], negative ? [ op.PUSH_UNDEFINED ] : [ op.PUSH_FAILED ] ) buildSequence( [ op.POP ], negative ? [ op.PUSH_UNDEFINED ] : [ op.PUSH_FAILED ] ),
) ),
); );
} }
@ -324,7 +324,7 @@ function generateBytecode( ast, session ) {
return buildLoop( return buildLoop(
[ op.WHILE_NOT_ERROR ], [ op.WHILE_NOT_ERROR ],
buildSequence( [ op.APPEND ], expressionCode ) buildSequence( [ op.APPEND ], expressionCode ),
); );
} }
@ -355,7 +355,7 @@ function generateBytecode( ast, session ) {
// Do not generate unused constant, if no need it // Do not generate unused constant, if no need it
const nameIndex = context.reportFailures ? addExpectedConst( const nameIndex = context.reportFailures ? addExpectedConst(
{ type: "rule", value: node.name } { type: "rule", value: node.name },
) : null; ) : null;
const expressionCode = generate( node.expression, { const expressionCode = generate( node.expression, {
sp: context.sp, sp: context.sp,
@ -369,7 +369,7 @@ function generateBytecode( ast, session ) {
[ op.EXPECT, nameIndex ], [ op.EXPECT, nameIndex ],
[ op.SILENT_FAILS_ON ], [ op.SILENT_FAILS_ON ],
expressionCode, expressionCode,
[ op.SILENT_FAILS_OFF ] [ op.SILENT_FAILS_OFF ],
) : expressionCode; ) : expressionCode;
}, },
@ -393,10 +393,10 @@ function generateBytecode( ast, session ) {
[ op.IF_ERROR ], [ op.IF_ERROR ],
buildSequence( buildSequence(
[ op.POP ], [ op.POP ],
buildAlternativesCode( alternatives.slice( 1 ), context ) buildAlternativesCode( alternatives.slice( 1 ), context ),
), ),
[] [],
) ),
); );
} }
@ -430,11 +430,11 @@ function generateBytecode( ast, session ) {
[ op.IF_NOT_ERROR ], [ op.IF_NOT_ERROR ],
buildSequence( buildSequence(
[ op.LOAD_SAVED_POS, 1 ], [ op.LOAD_SAVED_POS, 1 ],
buildCall( functionIndex, 1, env, context.sp + 2 ) buildCall( functionIndex, 1, env, context.sp + 2 ),
), ),
[] [],
), ),
[ op.NIP ] [ op.NIP ],
); );
}, },
@ -470,9 +470,9 @@ function generateBytecode( ast, session ) {
buildSequence( buildSequence(
processedCount > 1 ? [ op.POP_N, processedCount ] : [ op.POP ], processedCount > 1 ? [ op.POP_N, processedCount ] : [ op.POP ],
[ op.POP_CURR_POS ], [ op.POP_CURR_POS ],
[ op.PUSH_FAILED ] [ op.PUSH_FAILED ],
) ),
) ),
); );
} }
@ -481,7 +481,7 @@ function generateBytecode( ast, session ) {
return buildSequence( return buildSequence(
[ op.PLUCK, TOTAL_ELEMENTS + 1, context.pluck.length ], [ op.PLUCK, TOTAL_ELEMENTS + 1, context.pluck.length ],
context.pluck.map( eSP => context.sp - eSP ) context.pluck.map( eSP => context.sp - eSP ),
); );
if ( context.action ) if ( context.action )
@ -492,12 +492,12 @@ function generateBytecode( ast, session ) {
addFunctionConst( // functionIndex addFunctionConst( // functionIndex
false, false,
Object.keys( context.env ), Object.keys( context.env ),
context.action.code context.action.code,
), ),
TOTAL_ELEMENTS + 1, TOTAL_ELEMENTS + 1,
context.env, context.env,
context.sp context.sp,
) ),
); );
return buildSequence( [ op.WRAP, TOTAL_ELEMENTS ], [ op.NIP ] ); return buildSequence( [ op.WRAP, TOTAL_ELEMENTS ], [ op.NIP ] );
@ -512,7 +512,7 @@ function generateBytecode( ast, session ) {
pluck: [], pluck: [],
action: context.action, action: context.action,
reportFailures: context.reportFailures, reportFailures: context.reportFailures,
} ) } ),
); );
}, },
@ -557,8 +557,8 @@ function generateBytecode( ast, session ) {
node.expression.match|0, node.expression.match|0,
[ op.IF_NOT_ERROR ], [ op.IF_NOT_ERROR ],
buildSequence( [ op.POP ], [ op.TEXT ] ), buildSequence( [ op.POP ], [ op.TEXT ] ),
[ op.NIP ] [ op.NIP ],
) ),
); );
}, },
@ -589,8 +589,8 @@ function generateBytecode( ast, session ) {
-( node.expression.match|0 ), -( node.expression.match|0 ),
[ op.IF_ERROR ], [ op.IF_ERROR ],
buildSequence( [ op.POP ], [ op.PUSH_NULL ] ), buildSequence( [ op.POP ], [ op.PUSH_NULL ] ),
[] [],
) ),
); );
}, },
@ -608,7 +608,7 @@ function generateBytecode( ast, session ) {
[ op.PUSH_EMPTY_ARRAY ], [ op.PUSH_EMPTY_ARRAY ],
expressionCode, expressionCode,
buildAppendLoop( expressionCode ), buildAppendLoop( expressionCode ),
[ op.POP ] [ op.POP ],
); );
}, },
@ -629,8 +629,8 @@ function generateBytecode( ast, session ) {
node.expression.match|0, node.expression.match|0,
[ op.IF_NOT_ERROR ], [ op.IF_NOT_ERROR ],
buildSequence( buildAppendLoop( expressionCode ), [ op.POP ] ), buildSequence( buildAppendLoop( expressionCode ), [ op.POP ] ),
buildSequence( [ op.POP ], [ op.POP ], [ op.PUSH_FAILED ] ) buildSequence( [ op.POP ], [ op.POP ], [ op.PUSH_FAILED ] ),
) ),
); );
}, },
@ -671,7 +671,7 @@ function generateBytecode( ast, session ) {
const match = node.match|0; const match = node.match|0;
const needConst = match === 0 || ( match > 0 && ! node.ignoreCase ); const needConst = match === 0 || ( match > 0 && ! node.ignoreCase );
const stringIndex = needConst ? addLiteralConst( const stringIndex = needConst ? addLiteralConst(
node.ignoreCase ? node.value.toLowerCase() : node.value node.ignoreCase ? node.value.toLowerCase() : node.value,
) : null; ) : null;
// Do not generate unused constant, if no need it // Do not generate unused constant, if no need it
const expectedIndex = context.reportFailures ? addExpectedConst( { const expectedIndex = context.reportFailures ? addExpectedConst( {
@ -693,8 +693,8 @@ function generateBytecode( ast, session ) {
node.ignoreCase node.ignoreCase
? [ op.ACCEPT_N, node.value.length ] ? [ op.ACCEPT_N, node.value.length ]
: [ op.ACCEPT_STRING, stringIndex ], : [ op.ACCEPT_STRING, stringIndex ],
[ op.PUSH_FAILED ] [ op.PUSH_FAILED ],
) ),
); );
} }
@ -721,8 +721,8 @@ function generateBytecode( ast, session ) {
match, match,
[ op.MATCH_CLASS, classIndex ], [ op.MATCH_CLASS, classIndex ],
[ op.ACCEPT_N, 1 ], [ op.ACCEPT_N, 1 ],
[ op.PUSH_FAILED ] [ op.PUSH_FAILED ],
) ),
); );
}, },
@ -740,8 +740,8 @@ function generateBytecode( ast, session ) {
node.match|0, node.match|0,
[ op.MATCH_ANY ], [ op.MATCH_ANY ],
[ op.ACCEPT_N, 1 ], [ op.ACCEPT_N, 1 ],
[ op.PUSH_FAILED ] [ op.PUSH_FAILED ],
) ),
); );
}, },

@ -147,13 +147,13 @@ function generateJS( ast, session, options ) {
return ast.literals return ast.literals
.map( ( c, i ) => "var " + l( i ) + " = " + buildLiteral( c ) + ";" ) .map( ( c, i ) => "var " + l( i ) + " = " + buildLiteral( c ) + ";" )
.concat( "", ast.classes.map( .concat( "", ast.classes.map(
( c, i ) => "var " + r( i ) + " = " + buildRegexp( c ) + ";" ( c, i ) => "var " + r( i ) + " = " + buildRegexp( c ) + ";",
) ) ) )
.concat( "", ast.expectations.map( .concat( "", ast.expectations.map(
( c, i ) => "var " + e( i ) + " = " + buildExpectation( c ) + ";" ( c, i ) => "var " + e( i ) + " = " + buildExpectation( c ) + ";",
) ) ) )
.concat( "", ast.functions.map( .concat( "", ast.functions.map(
( c, i ) => "var " + f( i ) + " = " + buildFunc( c ) + ";" ( c, i ) => "var " + f( i ) + " = " + buildFunc( c ) + ";",
) ) ) )
.join( "\n" ); .join( "\n" );
@ -492,15 +492,15 @@ function generateJS( ast, session, options ) {
" case " + op.IF_ERROR + ":", // IF_ERROR t, f " case " + op.IF_ERROR + ":", // IF_ERROR t, f
indent10( generateCondition( indent10( generateCondition(
"stack[stack.length - 1] === peg$FAILED", "stack[stack.length - 1] === peg$FAILED",
0 0,
) ), ) ),
"", "",
" case " + op.IF_NOT_ERROR + ":", // IF_NOT_ERROR t, f " case " + op.IF_NOT_ERROR + ":", // IF_NOT_ERROR t, f
indent10( indent10(
generateCondition( generateCondition(
"stack[stack.length - 1] !== peg$FAILED", "stack[stack.length - 1] !== peg$FAILED",
0 0,
) ),
), ),
"", "",
" case " + op.WHILE_NOT_ERROR + ":", // WHILE_NOT_ERROR b " case " + op.WHILE_NOT_ERROR + ":", // WHILE_NOT_ERROR b
@ -512,19 +512,19 @@ function generateJS( ast, session, options ) {
" case " + op.MATCH_STRING + ":", // MATCH_STRING s, a, f, ... " case " + op.MATCH_STRING + ":", // MATCH_STRING s, a, f, ...
indent10( generateCondition( indent10( generateCondition(
"input.substr(peg$currPos, peg$literals[bc[ip + 1]].length) === peg$literals[bc[ip + 1]]", "input.substr(peg$currPos, peg$literals[bc[ip + 1]].length) === peg$literals[bc[ip + 1]]",
1 1,
) ), ) ),
"", "",
" case " + op.MATCH_STRING_IC + ":", // MATCH_STRING_IC s, a, f, ... " case " + op.MATCH_STRING_IC + ":", // MATCH_STRING_IC s, a, f, ...
indent10( generateCondition( indent10( generateCondition(
"input.substr(peg$currPos, peg$literals[bc[ip + 1]].length).toLowerCase() === peg$literals[bc[ip + 1]]", "input.substr(peg$currPos, peg$literals[bc[ip + 1]].length).toLowerCase() === peg$literals[bc[ip + 1]]",
1 1,
) ), ) ),
"", "",
" case " + op.MATCH_CLASS + ":", // MATCH_CLASS c, a, f, ... " case " + op.MATCH_CLASS + ":", // MATCH_CLASS c, a, f, ...
indent10( generateCondition( indent10( generateCondition(
"peg$regexps[bc[ip + 1]].test(input.charAt(peg$currPos))", "peg$regexps[bc[ip + 1]].test(input.charAt(peg$currPos))",
1 1,
) ), ) ),
"", "",
" case " + op.ACCEPT_N + ":", // ACCEPT_N n " case " + op.ACCEPT_N + ":", // ACCEPT_N n
@ -697,7 +697,7 @@ function generateJS( ast, session, options ) {
session.fatal( session.fatal(
"Rule '" + rule.name + "', position " + pos + ": " "Rule '" + rule.name + "', position " + pos + ": "
+ "Branches of a condition can't move the stack pointer differently " + "Branches of a condition can't move the stack pointer differently "
+ "(before: " + baseSp + ", after then: " + thenSp + ", after else: " + elseSp + ")." + "(before: " + baseSp + ", after then: " + thenSp + ", after else: " + elseSp + ").",
); );
} }
@ -735,7 +735,7 @@ function generateJS( ast, session, options ) {
session.fatal( session.fatal(
"Rule '" + rule.name + "', position " + pos + ": " "Rule '" + rule.name + "', position " + pos + ": "
+ "Body of a loop can't move the stack pointer " + "Body of a loop can't move the stack pointer "
+ "(before: " + baseSp + ", after: " + bodySp + ")." + "(before: " + baseSp + ", after: " + bodySp + ").",
); );
} }
@ -829,14 +829,14 @@ function generateJS( ast, session, options ) {
case op.WRAP: // WRAP n case op.WRAP: // WRAP n
parts.push( parts.push(
stack.push( "[" + stack.pop( bc[ ip + 1 ] ).join( ", " ) + "]" ) stack.push( "[" + stack.pop( bc[ ip + 1 ] ).join( ", " ) + "]" ),
); );
ip += 2; ip += 2;
break; break;
case op.TEXT: // TEXT case op.TEXT: // TEXT
parts.push( parts.push(
stack.push( "input.substring(" + stack.pop() + ", peg$currPos)" ) stack.push( "input.substring(" + stack.pop() + ", peg$currPos)" ),
); );
ip++; ip++;
break; break;
@ -886,7 +886,7 @@ function generateJS( ast, session, options ) {
+ l( bc[ ip + 1 ] ) + l( bc[ ip + 1 ] )
: "input.charCodeAt(peg$currPos) === " : "input.charCodeAt(peg$currPos) === "
+ ast.literals[ bc[ ip + 1 ] ].charCodeAt( 0 ) + ast.literals[ bc[ ip + 1 ] ].charCodeAt( 0 )
, 1 , 1,
); );
break; break;
@ -896,7 +896,7 @@ function generateJS( ast, session, options ) {
+ ast.literals[ bc[ ip + 1 ] ].length + ast.literals[ bc[ ip + 1 ] ].length
+ ").toLowerCase() === " + ").toLowerCase() === "
+ l( bc[ ip + 1 ] ) + l( bc[ ip + 1 ] )
, 1 , 1,
); );
break; break;
@ -908,12 +908,12 @@ function generateJS( ast, session, options ) {
parts.push( stack.push( parts.push( stack.push(
bc[ ip + 1 ] > 1 bc[ ip + 1 ] > 1
? "input.substr(peg$currPos, " + bc[ ip + 1 ] + ")" ? "input.substr(peg$currPos, " + bc[ ip + 1 ] + ")"
: "input.charAt(peg$currPos)" : "input.charAt(peg$currPos)",
) ); ) );
parts.push( parts.push(
bc[ ip + 1 ] > 1 bc[ ip + 1 ] > 1
? "peg$currPos += " + bc[ ip + 1 ] + ";" ? "peg$currPos += " + bc[ ip + 1 ] + ";"
: "peg$currPos++;" : "peg$currPos++;",
); );
ip += 2; ip += 2;
break; break;
@ -923,7 +923,7 @@ function generateJS( ast, session, options ) {
parts.push( parts.push(
ast.literals[ bc[ ip + 1 ] ].length > 1 ast.literals[ bc[ ip + 1 ] ].length > 1
? "peg$currPos += " + ast.literals[ bc[ ip + 1 ] ].length + ";" ? "peg$currPos += " + ast.literals[ bc[ ip + 1 ] ].length + ";"
: "peg$currPos++;" : "peg$currPos++;",
); );
ip += 2; ip += 2;
break; break;
@ -976,7 +976,7 @@ function generateJS( ast, session, options ) {
default: default:
session.fatal( session.fatal(
"Rule '" + rule.name + "', position " + ip + ": " "Rule '" + rule.name + "', position " + ip + ": "
+ "Invalid opcode " + bc[ ip ] + "." + "Invalid opcode " + bc[ ip ] + ".",
); );
} }
@ -1007,12 +1007,12 @@ function generateJS( ast, session, options ) {
parts.push( indent2( generateRuleHeader( parts.push( indent2( generateRuleHeader(
"\"" + util.stringEscape( rule.name ) + "\"", "\"" + util.stringEscape( rule.name ) + "\"",
ast.indexOfRule( rule.name ) ast.indexOfRule( rule.name ),
) ) ); ) ) );
parts.push( indent2( code ) ); parts.push( indent2( code ) );
parts.push( indent2( generateRuleFooter( parts.push( indent2( generateRuleFooter(
"\"" + util.stringEscape( rule.name ) + "\"", "\"" + util.stringEscape( rule.name ) + "\"",
s( 0 ) s( 0 ),
) ) ); ) ) );
parts.push( "}" ); parts.push( "}" );
@ -1746,7 +1746,7 @@ function generateJS( ast, session, options ) {
parts.push( parts.push(
generateHeaderComment(), generateHeaderComment(),
"" "",
); );
if ( dependencyVars.length > 0 ) { if ( dependencyVars.length > 0 ) {
@ -1769,7 +1769,7 @@ function generateJS( ast, session, options ) {
"export " + generateParserExports() + ";", "export " + generateParserExports() + ";",
"", "",
"export default " + generateParserObject() + ";", "export default " + generateParserObject() + ";",
"" "",
); );
return parts.join( "\n" ); return parts.join( "\n" );

@ -90,7 +90,7 @@ function inferenceMatchResult( ast, session ) {
session.error( session.error(
"Infinity cycle detected when trying to evaluate node match result", "Infinity cycle detected when trying to evaluate node match result",
node.location node.location,
); );
} }

@ -43,7 +43,7 @@ function reportDuplicateLabels( ast, session ) {
session.error( session.error(
`Label "${ label }" is already defined at line ${ start.line }, column ${ start.column }.`, `Label "${ label }" is already defined at line ${ start.line }, column ${ start.column }.`,
node.location node.location,
); );
} }

@ -18,7 +18,7 @@ function reportDuplicateRules( ast, session ) {
session.error( session.error(
`Rule "${ name }" is already defined at line ${ start.line }, column ${ start.column }.`, `Rule "${ name }" is already defined at line ${ start.line }, column ${ start.column }.`,
node.location node.location,
); );
} }

@ -44,7 +44,7 @@ function reportInfiniteRecursion( ast, session ) {
session.error( session.error(
`Possible infinite loop when parsing (left recursion: ${ rulePath }).`, `Possible infinite loop when parsing (left recursion: ${ rulePath }).`,
node.location node.location,
); );
} }

@ -11,7 +11,7 @@ function reportInfiniteRepetition( ast, session ) {
session.error( session.error(
"Possible infinite loop when parsing (repetition used with an expression that may not consume any input).", "Possible infinite loop when parsing (repetition used with an expression that may not consume any input).",
node.location node.location,
); );
} }
@ -24,7 +24,7 @@ function reportInfiniteRepetition( ast, session ) {
session.error( session.error(
"Possible infinite loop when parsing (repetition used with an expression that may not consume any input).", "Possible infinite loop when parsing (repetition used with an expression that may not consume any input).",
node.location node.location,
); );
} }

@ -10,7 +10,7 @@ function reportUndefinedRules( ast, session, options ) {
session.error( session.error(
`Rule "${ node.name }" is not defined.`, `Rule "${ node.name }" is not defined.`,
node.location node.location,
); );
} }

@ -19,7 +19,7 @@ function reportUnusedRules( ast, session, options ) {
session.warn( session.warn(
`Rule "${ rule.name }" is not referenced.`, `Rule "${ rule.name }" is not referenced.`,
rule.location rule.location,
); );
} }

@ -44,7 +44,7 @@ const peg = {
return compiler.compile( return compiler.compile(
session.parse( grammar, options.parser || {} ), session.parse( grammar, options.parser || {} ),
session, session,
options options,
); );
}, },

@ -39,7 +39,7 @@ const js = {
return sourceEscape( return sourceEscape(
s s
.replace( /\\/g, "\\\\" ) // backslash .replace( /\\/g, "\\\\" ) // backslash
.replace( /"/g, "\\\"" ) // closing double quote .replace( /"/g, "\\\"" ), // closing double quote
); );
}, },
@ -57,7 +57,7 @@ const js = {
.replace( /\//g, "\\/" ) // closing slash .replace( /\//g, "\\/" ) // closing slash
.replace( /]/g, "\\]" ) // closing bracket .replace( /]/g, "\\]" ) // closing bracket
.replace( /\^/g, "\\^" ) // caret .replace( /\^/g, "\\^" ) // caret
.replace( /-/g, "\\-" ) // dash .replace( /-/g, "\\-" ), // dash
); );
}, },

@ -29,7 +29,7 @@ describe( "generated parser behavior", function () {
block( peg.util.clone( variant ) ); block( peg.util.clone( variant ) );
} },
); );
} ); } );
@ -71,7 +71,7 @@ describe( "generated parser behavior", function () {
"expected #{this} to not parse input as #{exp}", "expected #{this} to not parse input as #{exp}",
expected, expected,
result, result,
! utils.flag( this, "negate" ) ! utils.flag( this, "negate" ),
); );
} }
@ -102,7 +102,7 @@ describe( "generated parser behavior", function () {
"expected #{this} to fail to parse input but got #{act}", "expected #{this} to fail to parse input but got #{act}",
"expected #{this} to not fail to parse input but #{act} was thrown", "expected #{this} to not fail to parse input but #{act} was thrown",
null, null,
result result,
); );
if ( ! passed && typeof props !== "undefined" ) { if ( ! passed && typeof props !== "undefined" ) {
@ -556,7 +556,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = a:'a' &{ return a === 'a'; }", "start = a:'a' &{ return a === 'a'; }",
options options,
); );
expect( parser ).to.parse( "a" ); expect( parser ).to.parse( "a" );
@ -567,7 +567,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' b:&{ return b === undefined; } 'c'", "start = 'a' b:&{ return b === undefined; } 'c'",
options options,
); );
expect( parser ).to.failToParse( "ac" ); expect( parser ).to.failToParse( "ac" );
@ -578,7 +578,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = &{ return a === 'a'; } a:'a'", "start = &{ return a === 'a'; } a:'a'",
options options,
); );
expect( parser ).to.failToParse( "a" ); expect( parser ).to.failToParse( "a" );
@ -651,7 +651,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = a:'a' ('b' &{ return a === 'a'; })", "start = a:'a' ('b' &{ return a === 'a'; })",
options options,
); );
expect( parser ).to.parse( "ab" ); expect( parser ).to.parse( "ab" );
@ -662,7 +662,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' b:('b' &{ return b === undefined; }) 'c'", "start = 'a' b:('b' &{ return b === undefined; }) 'c'",
options options,
); );
expect( parser ).to.failToParse( "abc" ); expect( parser ).to.failToParse( "abc" );
@ -673,7 +673,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = ('a' &{ return b === 'b'; }) b:'b'", "start = ('a' &{ return b === 'b'; }) b:'b'",
options options,
); );
expect( parser ).to.failToParse( "ab" ); expect( parser ).to.failToParse( "ab" );
@ -815,7 +815,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = a:'a' !{ return a !== 'a'; }", "start = a:'a' !{ return a !== 'a'; }",
options options,
); );
expect( parser ).to.parse( "a" ); expect( parser ).to.parse( "a" );
@ -826,7 +826,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' b:!{ return b !== undefined; } 'c'", "start = 'a' b:!{ return b !== undefined; } 'c'",
options options,
); );
expect( parser ).to.failToParse( "ac" ); expect( parser ).to.failToParse( "ac" );
@ -837,7 +837,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = !{ return a !== 'a'; } a:'a'", "start = !{ return a !== 'a'; } a:'a'",
options options,
); );
expect( parser ).to.failToParse( "a" ); expect( parser ).to.failToParse( "a" );
@ -910,7 +910,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = a:'a' ('b' !{ return a !== 'a'; })", "start = a:'a' ('b' !{ return a !== 'a'; })",
options options,
); );
expect( parser ).to.parse( "ab" ); expect( parser ).to.parse( "ab" );
@ -921,7 +921,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' b:('b' !{ return b !== undefined; }) 'c'", "start = 'a' b:('b' !{ return b !== undefined; }) 'c'",
options options,
); );
expect( parser ).to.failToParse( "abc" ); expect( parser ).to.failToParse( "abc" );
@ -932,7 +932,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = ('a' !{ return b !== 'b'; }) b:'b'", "start = ('a' !{ return b !== 'b'; }) b:'b'",
options options,
); );
expect( parser ).to.failToParse( "ab" ); expect( parser ).to.failToParse( "ab" );
@ -1482,7 +1482,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = a:'a' b:'b' c:'c' { return [a, b, c]; }", "start = a:'a' b:'b' c:'c' { return [a, b, c]; }",
options options,
); );
expect( parser ).to.parse( "abc", [ "a", "b", "c" ] ); expect( parser ).to.parse( "abc", [ "a", "b", "c" ] );
@ -1555,7 +1555,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = a:'a' ('b' { return a; })", "start = a:'a' ('b' { return a; })",
options options,
); );
expect( parser ).to.parse( "ab", [ "a", "a" ] ); expect( parser ).to.parse( "ab", [ "a", "a" ] );
@ -1566,7 +1566,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' b:('b' { return b; }) c:'c'", "start = 'a' b:('b' { return b; }) c:'c'",
options options,
); );
expect( parser ).to.failToParse( "abc" ); expect( parser ).to.failToParse( "abc" );
@ -1577,7 +1577,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = ('a' { return b; }) b:'b'", "start = ('a' { return b; }) b:'b'",
options options,
); );
expect( parser ).to.failToParse( "ab" ); expect( parser ).to.failToParse( "ab" );
@ -1620,7 +1620,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' { return options; }", "start = 'a' { return options; }",
options options,
); );
expect( parser ).to.parse( "a", { a: 42 }, { a: 42 } ); expect( parser ).to.parse( "a", { a: 42 }, { a: 42 } );
@ -1631,7 +1631,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' { return text(); }", "start = 'a' { return text(); }",
options options,
); );
expect( parser ).to.parse( "a", "a" ); expect( parser ).to.parse( "a", "a" );
@ -1673,7 +1673,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' { expected('a'); }", "start = 'a' { expected('a'); }",
options options,
); );
expect( parser ).to.failToParse( "a", { expect( parser ).to.failToParse( "a", {
@ -1719,7 +1719,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' { error('a'); }", "start = 'a' { error('a'); }",
options options,
); );
expect( parser ).to.failToParse( "a", { expect( parser ).to.failToParse( "a", {
@ -1777,7 +1777,7 @@ describe( "generated parser behavior", function () {
const parser = peg.generate( const parser = peg.generate(
"start = 'a' { throw 'Boom!'; } / 'b'", "start = 'a' { throw 'Boom!'; } / 'b'",
options options,
); );
expect( parser ).to.parse( "b" ); expect( parser ).to.parse( "b" );
@ -2195,7 +2195,7 @@ describe( "generated parser behavior", function () {
expect( parser ).to.parse( "(*(**)*)", "(*(**)*)" ); expect( parser ).to.parse( "(*(**)*)", "(*(**)*)" );
expect( parser ).to.parse( expect( parser ).to.parse(
"(*abc(*def*)ghi(*(*(*jkl*)*)*)mno*)", "(*abc(*def*)ghi(*(*(*jkl*)*)*)mno*)",
"(*abc(*def*)ghi(*(*(*jkl*)*)*)mno*)" "(*abc(*def*)ghi(*(*(*jkl*)*)*)mno*)",
); );
} ); } );

@ -1,5 +1,3 @@
/* eslint-disable function-call-argument-newline */
"use strict"; "use strict";
const chai = require( "chai" ); const chai = require( "chai" );
@ -63,7 +61,7 @@ describe( "compiler pass |generateBytecode|", function () {
{ type: "literal", value: "b", ignoreCase: false }, { type: "literal", value: "b", ignoreCase: false },
{ type: "literal", value: "c", ignoreCase: false }, { type: "literal", value: "c", ignoreCase: false },
], ],
[] [],
) ); ) );
} ); } );
@ -119,19 +117,19 @@ describe( "compiler pass |generateBytecode|", function () {
[], [],
[], [],
[ { type: "rule", value: "start" } ], [ { type: "rule", value: "start" } ],
[] [],
) ); ) );
expect( pass ).to.changeAST( grammar2, constsDetails( expect( pass ).to.changeAST( grammar2, constsDetails(
[ "a" ], [ "a" ],
[], [],
[ { type: "rule", value: "start" } ], [ { type: "rule", value: "start" } ],
[] [],
) ); ) );
expect( pass ).to.changeAST( grammar3, constsDetails( expect( pass ).to.changeAST( grammar3, constsDetails(
[], [],
[ { value: [ "a" ], inverted: false, ignoreCase: false } ], [ { value: [ "a" ], inverted: false, ignoreCase: false } ],
[ { type: "rule", value: "start" } ], [ { type: "rule", value: "start" } ],
[] [],
) ); ) );
} ); } );
@ -209,7 +207,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[ { predicate: false, params: [], body: " code " } ] [ { predicate: false, params: [], body: " code " } ],
) ); ) );
} ); } );
@ -239,7 +237,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[ { predicate: false, params: [ "a" ], body: " code " } ] [ { predicate: false, params: [ "a" ], body: " code " } ],
) ); ) );
} ); } );
@ -285,7 +283,7 @@ describe( "compiler pass |generateBytecode|", function () {
{ type: "literal", value: "b", ignoreCase: false }, { type: "literal", value: "b", ignoreCase: false },
{ type: "literal", value: "c", ignoreCase: false }, { type: "literal", value: "c", ignoreCase: false },
], ],
[ { predicate: false, params: [ "a", "b", "c" ], body: " code " } ] [ { predicate: false, params: [ "a", "b", "c" ], body: " code " } ],
) ); ) );
} ); } );
@ -333,7 +331,7 @@ describe( "compiler pass |generateBytecode|", function () {
{ type: "literal", value: "b", ignoreCase: false }, { type: "literal", value: "b", ignoreCase: false },
{ type: "literal", value: "c", ignoreCase: false }, { type: "literal", value: "c", ignoreCase: false },
], ],
[] [],
) ); ) );
} ); } );
@ -441,7 +439,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -476,7 +474,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -504,7 +502,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -534,7 +532,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -568,7 +566,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -593,7 +591,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -624,7 +622,7 @@ describe( "compiler pass |generateBytecode|", function () {
expect( pass ).to.changeAST( expect( pass ).to.changeAST(
grammar, grammar,
constsDetails( [], [], [], [ { predicate: true, params: [], body: " code " } ] ) constsDetails( [], [], [], [ { predicate: true, params: [], body: " code " } ] ),
); );
} ); } );
@ -681,7 +679,7 @@ describe( "compiler pass |generateBytecode|", function () {
{ type: "literal", value: "b", ignoreCase: false }, { type: "literal", value: "b", ignoreCase: false },
{ type: "literal", value: "c", ignoreCase: false }, { type: "literal", value: "c", ignoreCase: false },
], ],
[ { predicate: true, params: [ "a", "b", "c" ], body: " code " } ] [ { predicate: true, params: [ "a", "b", "c" ], body: " code " } ],
) ); ) );
} ); } );
@ -714,7 +712,7 @@ describe( "compiler pass |generateBytecode|", function () {
expect( pass ).to.changeAST( expect( pass ).to.changeAST(
grammar, grammar,
constsDetails( [], [], [], [ { predicate: true, params: [], body: " code " } ] ) constsDetails( [], [], [], [ { predicate: true, params: [], body: " code " } ] ),
); );
} ); } );
@ -771,7 +769,7 @@ describe( "compiler pass |generateBytecode|", function () {
{ type: "literal", value: "b", ignoreCase: false }, { type: "literal", value: "b", ignoreCase: false },
{ type: "literal", value: "c", ignoreCase: false }, { type: "literal", value: "c", ignoreCase: false },
], ],
[ { predicate: true, params: [ "a", "b", "c" ], body: " code " } ] [ { predicate: true, params: [ "a", "b", "c" ], body: " code " } ],
) ); ) );
} ); } );
@ -845,7 +843,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "a", ignoreCase: false } ], [ { type: "literal", value: "a", ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -873,7 +871,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ], [ "a" ],
[], [],
[ { type: "literal", value: "A", ignoreCase: true } ], [ { type: "literal", value: "A", ignoreCase: true } ],
[] [],
) ); ) );
} ); } );
@ -975,7 +973,7 @@ describe( "compiler pass |generateBytecode|", function () {
[], [],
[ { value: [ "a" ], inverted: false, ignoreCase: false } ], [ { value: [ "a" ], inverted: false, ignoreCase: false } ],
[ { type: "class", value: [ "a" ], inverted: false, ignoreCase: false } ], [ { type: "class", value: [ "a" ], inverted: false, ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -990,7 +988,7 @@ describe( "compiler pass |generateBytecode|", function () {
[], [],
[ { value: [ "a" ], inverted: true, ignoreCase: false } ], [ { value: [ "a" ], inverted: true, ignoreCase: false } ],
[ { type: "class", value: [ "a" ], inverted: true, ignoreCase: false } ], [ { type: "class", value: [ "a" ], inverted: true, ignoreCase: false } ],
[] [],
) ); ) );
} ); } );
@ -1005,7 +1003,7 @@ describe( "compiler pass |generateBytecode|", function () {
[], [],
[ { value: [ "a" ], inverted: false, ignoreCase: true } ], [ { value: [ "a" ], inverted: false, ignoreCase: true } ],
[ { type: "class", value: [ "a" ], inverted: false, ignoreCase: true } ], [ { type: "class", value: [ "a" ], inverted: false, ignoreCase: true } ],
[] [],
) ); ) );
} ); } );
@ -1033,7 +1031,7 @@ describe( "compiler pass |generateBytecode|", function () {
ignoreCase: false, ignoreCase: false,
}, },
], ],
[] [],
) ); ) );
} ); } );
@ -1098,7 +1096,7 @@ describe( "compiler pass |generateBytecode|", function () {
}, },
], ],
[], [],
[] [],
), {}, { reportFailures: false } ); ), {}, { reportFailures: false } );
} ); } );
@ -1130,7 +1128,7 @@ describe( "compiler pass |generateBytecode|", function () {
expect( pass ).to.changeAST( expect( pass ).to.changeAST(
grammar, grammar,
constsDetails( [], [], [ { type: "any" } ], [] ) constsDetails( [], [], [ { type: "any" } ], [] ),
); );
} ); } );
@ -1157,7 +1155,7 @@ describe( "compiler pass |generateBytecode|", function () {
grammar, grammar,
constsDetails( [], [], [], [] ), constsDetails( [], [], [], [] ),
{}, {},
{ reportFailures: false } { reportFailures: false },
); );
} ); } );

@ -67,7 +67,7 @@ module.exports = function ( chai, utils ) {
"expected #{this} to report an error but it didn't", "expected #{this} to report an error but it didn't",
"expected #{this} to not report an error but #{act} was reported", "expected #{this} to not report an error but #{act} was reported",
null, null,
result result,
); );
if ( ! passed && typeof props !== "undefined" ) { if ( ! passed && typeof props !== "undefined" ) {
@ -118,7 +118,7 @@ module.exports = function ( chai, utils ) {
`expected #{this} to report ${ warningsCount } warnings, but it reported ${ messagesCount } warnings`, `expected #{this} to report ${ warningsCount } warnings, but it reported ${ messagesCount } warnings`,
`expected #{this} to not report ${ warningsCount } warnings`, `expected #{this} to not report ${ warningsCount } warnings`,
warnings, warnings,
messages messages,
); );
warnings.forEach( warning => { warnings.forEach( warning => {
@ -127,7 +127,7 @@ module.exports = function ( chai, utils ) {
messages.indexOf( warning ) !== -1, messages.indexOf( warning ) !== -1,
"expected #{this} to report the warning #{exp}, but it didn't", "expected #{this} to report the warning #{exp}, but it didn't",
"expected #{this} to not report the warning #{exp}", "expected #{this} to not report the warning #{exp}",
warning warning,
); );
} ); } );

@ -141,19 +141,19 @@ describe( "compiler pass |inferenceMatchResult|", function () {
[ "start = end", "end = . " ].join( "\n" ), [ "start = end", "end = . " ].join( "\n" ),
{ rules: [ { match: 0 }, { match: 0 } ] }, { rules: [ { match: 0 }, { match: 0 } ] },
{}, {},
{} {},
); );
expect( pass ).to.changeAST( expect( pass ).to.changeAST(
[ "start = end", "end = ''" ].join( "\n" ), [ "start = end", "end = ''" ].join( "\n" ),
{ rules: [ { match: 1 }, { match: 1 } ] }, { rules: [ { match: 1 }, { match: 1 } ] },
{}, {},
{} {},
); );
expect( pass ).to.changeAST( expect( pass ).to.changeAST(
[ "start = end", "end = []" ].join( "\n" ), [ "start = end", "end = []" ].join( "\n" ),
{ rules: [ { match: -1 }, { match: -1 } ] }, { rules: [ { match: -1 }, { match: -1 } ] },
{}, {},
{} {},
); );
expect( pass ).to.changeAST( "start = . start", { rules: [ { match: 0 } ] }, {}, {} ); expect( pass ).to.changeAST( "start = . start", { rules: [ { match: 0 } ] }, {}, {} );

@ -29,7 +29,7 @@ describe( "compiler pass |removeProxyRules|", function () {
{ name: "proxied" }, { name: "proxied" },
], ],
}, },
{ allowedStartRules: [ "start" ] } { allowedStartRules: [ "start" ] },
); );
} ); } );
@ -59,7 +59,7 @@ describe( "compiler pass |removeProxyRules|", function () {
{ name: "proxied" }, { name: "proxied" },
], ],
}, },
{ allowedStartRules: [ "start", "proxy" ] } { allowedStartRules: [ "start", "proxy" ] },
); );
} ); } );

@ -31,7 +31,7 @@ describe( "compiler pass |reportUndefinedRules|", function () {
}, },
{ {
allowedStartRules: [ "missing" ], allowedStartRules: [ "missing" ],
} },
); );
} ); } );

@ -17,7 +17,7 @@ describe( "compiler pass |reportUnusedRules|", function () {
start = . start = .
unused = . unused = .
`, `,
`Rule "unused" is not referenced.` `Rule "unused" is not referenced.`,
); );
expect( pass ).to.reportWarning( expect( pass ).to.reportWarning(
@ -29,7 +29,7 @@ describe( "compiler pass |reportUnusedRules|", function () {
[ [
`Rule "used" is not referenced.`, `Rule "used" is not referenced.`,
`Rule "unused" is not referenced.`, `Rule "unused" is not referenced.`,
] ],
); );
} ); } );
@ -56,7 +56,7 @@ describe( "compiler pass |reportUnusedRules|", function () {
null, null,
{ {
allowedStartRules: [ "b", "c" ], allowedStartRules: [ "b", "c" ],
} },
); );
} ); } );

@ -24,7 +24,7 @@ function varyParserOptions( block ) {
describe( describe(
"with options " + chai.util.inspect( variant ), "with options " + chai.util.inspect( variant ),
() => block( variant ) () => block( variant ),
); );
} ); } );
@ -103,7 +103,7 @@ describe( "PEG.js grammar parser", function () {
function actionGrammar( code ) { function actionGrammar( code ) {
return oneRuleGrammar( return oneRuleGrammar(
{ type: "action", expression: literalAbcd, code: code } { type: "action", expression: literalAbcd, code: code },
); );
} }
@ -111,7 +111,7 @@ describe( "PEG.js grammar parser", function () {
function literalGrammar( value, ignoreCase ) { function literalGrammar( value, ignoreCase ) {
return oneRuleGrammar( return oneRuleGrammar(
{ type: "literal", value: value, ignoreCase: ignoreCase } { type: "literal", value: value, ignoreCase: ignoreCase },
); );
} }
@ -260,7 +260,7 @@ describe( "PEG.js grammar parser", function () {
"expected #{this} to not parse as #{exp}", "expected #{this} to not parse as #{exp}",
expected, expected,
result, result,
! utils.flag( this, "negate" ) ! utils.flag( this, "negate" ),
); );
} ); } );
@ -292,7 +292,7 @@ describe( "PEG.js grammar parser", function () {
"expected #{this} to fail to parse but got #{act}", "expected #{this} to fail to parse but got #{act}",
"expected #{this} to not fail to parse but it failed with #{act}", "expected #{this} to not fail to parse but it failed with #{act}",
null, null,
result result,
); );
if ( ! passed && typeof props !== "undefined" ) { if ( ! passed && typeof props !== "undefined" ) {
@ -340,13 +340,13 @@ describe( "PEG.js grammar parser", function () {
it( "parses Grammar", function () { it( "parses Grammar", function () {
expect( "\na = 'abcd';\n" ).to.parseAs( expect( "\na = 'abcd';\n" ).to.parseAs(
{ type: "grammar", comments: null, initializer: null, rules: [ ruleA ] } { type: "grammar", comments: null, initializer: null, rules: [ ruleA ] },
); );
expect( "\na = 'abcd';\nb = 'efgh';\nc = 'ijkl';\n" ).to.parseAs( expect( "\na = 'abcd';\nb = 'efgh';\nc = 'ijkl';\n" ).to.parseAs(
{ type: "grammar", comments: null, initializer: null, rules: [ ruleA, ruleB, ruleC ] } { type: "grammar", comments: null, initializer: null, rules: [ ruleA, ruleB, ruleC ] },
); );
expect( "\n{ code };\na = 'abcd';\n" ).to.parseAs( expect( "\n{ code };\na = 'abcd';\n" ).to.parseAs(
{ type: "grammar", comments: null, initializer: initializer, rules: [ ruleA ] } { type: "grammar", comments: null, initializer: initializer, rules: [ ruleA ] },
); );
} ); } );
@ -355,7 +355,7 @@ describe( "PEG.js grammar parser", function () {
it( "parses Initializer", function () { it( "parses Initializer", function () {
expect( "{ code };start = 'abcd'" ).to.parseAs( expect( "{ code };start = 'abcd'" ).to.parseAs(
{ type: "grammar", comments: null, initializer: initializer, rules: [ ruleStart ] } { type: "grammar", comments: null, initializer: initializer, rules: [ ruleStart ] },
); );
} ); } );
@ -364,10 +364,10 @@ describe( "PEG.js grammar parser", function () {
it( "parses Rule", function () { it( "parses Rule", function () {
expect( "start\n=\n'abcd';" ).to.parseAs( expect( "start\n=\n'abcd';" ).to.parseAs(
oneRuleGrammar( literalAbcd ) oneRuleGrammar( literalAbcd ),
); );
expect( "start\n'start rule'\n=\n'abcd';" ).to.parseAs( expect( "start\n'start rule'\n=\n'abcd';" ).to.parseAs(
oneRuleGrammar( named ) oneRuleGrammar( named ),
); );
} ); } );
@ -376,7 +376,7 @@ describe( "PEG.js grammar parser", function () {
it( "parses Expression", function () { it( "parses Expression", function () {
expect( "start = 'abcd' / 'efgh' / 'ijkl'" ).to.parseAs( expect( "start = 'abcd' / 'efgh' / 'ijkl'" ).to.parseAs(
oneRuleGrammar( choice ) oneRuleGrammar( choice ),
); );
} ); } );
@ -385,15 +385,15 @@ describe( "PEG.js grammar parser", function () {
it( "parses ChoiceExpression", function () { it( "parses ChoiceExpression", function () {
expect( "start = 'abcd' { code }" ).to.parseAs( expect( "start = 'abcd' { code }" ).to.parseAs(
oneRuleGrammar( actionAbcd ) oneRuleGrammar( actionAbcd ),
); );
expect( "start = 'abcd' { code }\n/\n'efgh' { code }" ).to.parseAs( expect( "start = 'abcd' { code }\n/\n'efgh' { code }" ).to.parseAs(
oneRuleGrammar( choice2 ) oneRuleGrammar( choice2 ),
); );
expect( expect(
"start = 'abcd' { code }\n/\n'efgh' { code }\n/\n'ijkl' { code }\n/\n'mnop' { code }" "start = 'abcd' { code }\n/\n'efgh' { code }\n/\n'ijkl' { code }\n/\n'mnop' { code }",
).to.parseAs( ).to.parseAs(
oneRuleGrammar( choice4 ) oneRuleGrammar( choice4 ),
); );
} ); } );
@ -402,10 +402,10 @@ describe( "PEG.js grammar parser", function () {
it( "parses ActionExpression", function () { it( "parses ActionExpression", function () {
expect( "start = 'abcd' 'efgh' 'ijkl'" ).to.parseAs( expect( "start = 'abcd' 'efgh' 'ijkl'" ).to.parseAs(
oneRuleGrammar( sequence ) oneRuleGrammar( sequence ),
); );
expect( "start = 'abcd' 'efgh' 'ijkl'\n{ code }" ).to.parseAs( expect( "start = 'abcd' 'efgh' 'ijkl'\n{ code }" ).to.parseAs(
oneRuleGrammar( actionSequence ) oneRuleGrammar( actionSequence ),
); );
} ); } );
@ -414,13 +414,13 @@ describe( "PEG.js grammar parser", function () {
it( "parses SequenceExpression", function () { it( "parses SequenceExpression", function () {
expect( "start = a:'abcd'" ).to.parseAs( expect( "start = a:'abcd'" ).to.parseAs(
oneRuleGrammar( labeledAbcd ) oneRuleGrammar( labeledAbcd ),
); );
expect( "start = a:'abcd'\nb:'efgh'" ).to.parseAs( expect( "start = a:'abcd'\nb:'efgh'" ).to.parseAs(
oneRuleGrammar( sequence2 ) oneRuleGrammar( sequence2 ),
); );
expect( "start = a:'abcd'\nb:'efgh'\nc:'ijkl'\nd:'mnop'" ).to.parseAs( expect( "start = a:'abcd'\nb:'efgh'\nc:'ijkl'\nd:'mnop'" ).to.parseAs(
oneRuleGrammar( sequence4 ) oneRuleGrammar( sequence4 ),
); );
} ); } );
@ -448,22 +448,22 @@ describe( "PEG.js grammar parser", function () {
} }
expect( "start = @'abcd'" ).to.parseAs( expect( "start = @'abcd'" ).to.parseAs(
$S( $P( null, literalAbcd ) ) $S( $P( null, literalAbcd ) ),
); );
expect( "start = @a:'abcd'" ).to.parseAs( expect( "start = @a:'abcd'" ).to.parseAs(
$S( $P( "a", literalAbcd ) ) $S( $P( "a", literalAbcd ) ),
); );
expect( "start = 'abcd' @'efgh'" ).to.parseAs( expect( "start = 'abcd' @'efgh'" ).to.parseAs(
$S( literalAbcd, $P( null, literalEfgh ) ) $S( literalAbcd, $P( null, literalEfgh ) ),
); );
expect( "start = a:'abcd' @b:'efgh'" ).to.parseAs( expect( "start = a:'abcd' @b:'efgh'" ).to.parseAs(
$S( labeledAbcd, $P( "b", literalEfgh ) ) $S( labeledAbcd, $P( "b", literalEfgh ) ),
); );
expect( "start = @'abcd' b:'efgh'" ).to.parseAs( expect( "start = @'abcd' b:'efgh'" ).to.parseAs(
$S( $P( null, literalAbcd ), labeledEfgh ) $S( $P( null, literalAbcd ), labeledEfgh ),
); );
expect( "start = a:'abcd' @'efgh' 'ijkl' @d:'mnop'" ).to.parseAs( expect( "start = a:'abcd' @'efgh' 'ijkl' @d:'mnop'" ).to.parseAs(
$S( labeledAbcd, $P( null, literalEfgh ), literalIjkl, $P( "d", literalMnop ) ) $S( labeledAbcd, $P( null, literalEfgh ), literalIjkl, $P( "d", literalMnop ) ),
); );
} ); } );
@ -723,30 +723,30 @@ describe( "PEG.js grammar parser", function () {
it( "parses CharacterClassMatcher", function () { it( "parses CharacterClassMatcher", function () {
expect( "start = []" ).to.parseAs( expect( "start = []" ).to.parseAs(
classGrammar( [], false, false ) classGrammar( [], false, false ),
); );
expect( "start = [a-d]" ).to.parseAs( expect( "start = [a-d]" ).to.parseAs(
classGrammar( [ [ "a", "d" ] ], false, false ) classGrammar( [ [ "a", "d" ] ], false, false ),
); );
expect( "start = [a]" ).to.parseAs( expect( "start = [a]" ).to.parseAs(
classGrammar( [ "a" ], false, false ) classGrammar( [ "a" ], false, false ),
); );
expect( "start = [a-de-hi-l]" ).to.parseAs( expect( "start = [a-de-hi-l]" ).to.parseAs(
classGrammar( classGrammar(
[ [ "a", "d" ], [ "e", "h" ], [ "i", "l" ] ], [ [ "a", "d" ], [ "e", "h" ], [ "i", "l" ] ],
false, false,
false false,
) ),
); );
expect( "start = [^a-d]" ).to.parseAs( expect( "start = [^a-d]" ).to.parseAs(
classGrammar( [ [ "a", "d" ] ], true, false ) classGrammar( [ [ "a", "d" ] ], true, false ),
); );
expect( "start = [a-d]i" ).to.parseAs( expect( "start = [a-d]i" ).to.parseAs(
classGrammar( [ [ "a", "d" ] ], false, true ) classGrammar( [ [ "a", "d" ] ], false, true ),
); );
expect( "start = [\\\n]" ).to.parseAs( expect( "start = [\\\n]" ).to.parseAs(
classGrammar( [], false, false ) classGrammar( [], false, false ),
); );
} ); } );

@ -98,7 +98,7 @@ $( "#run" ).click( () => {
test.title, test.title,
`https://github.com/pegjs/pegjs/blob/${ BRANCH }/tools/benchmark/${ benchmark.id }/${ test.file }`, `https://github.com/pegjs/pegjs/blob/${ BRANCH }/tools/benchmark/${ benchmark.id }/${ test.file }`,
inputSize, inputSize,
parseTime parseTime,
); );
}, },
@ -122,7 +122,7 @@ $( "#run" ).click( () => {
benchmark.title + " total", benchmark.title + " total",
null, null,
inputSize, inputSize,
parseTime parseTime,
); );
}, },
@ -143,7 +143,7 @@ $( "#run" ).click( () => {
"Total", "Total",
null, null,
inputSize, inputSize,
parseTime parseTime,
); );
$.scrollTo( "max", { axis: "y", duration: 500 } ); $.scrollTo( "max", { axis: "y", duration: 500 } );

@ -68,7 +68,7 @@ function writeResult( title, inputSize, parseTime ) {
padLeft( parseTime.toFixed( 2 ), 7 ) + padLeft( parseTime.toFixed( 2 ), 7 ) +
" ms │ " + " ms │ " +
padLeft( ( ( inputSize / KB ) / ( parseTime / MS_IN_S ) ).toFixed( 2 ), 7 ) + padLeft( ( ( inputSize / KB ) / ( parseTime / MS_IN_S ) ).toFixed( 2 ), 7 ) +
" kB/s │" " kB/s │",
); );
} }

@ -70,7 +70,7 @@ const Runner = {
state.parser = peg.generate( state.parser = peg.generate(
callbacks.readFile( "examples/" + benchmark.id + ".pegjs" ), callbacks.readFile( "examples/" + benchmark.id + ".pegjs" ),
options options,
); );
state.benchmarkInputSize = 0; state.benchmarkInputSize = 0;
state.benchmarkParseTime = 0; state.benchmarkParseTime = 0;
@ -113,7 +113,7 @@ const Runner = {
callbacks.benchmarkFinish( callbacks.benchmarkFinish(
benchmark, benchmark,
state.benchmarkInputSize, state.benchmarkInputSize,
state.benchmarkParseTime state.benchmarkParseTime,
); );
state.totalInputSize += state.benchmarkInputSize; state.totalInputSize += state.benchmarkInputSize;

@ -73,7 +73,7 @@ function runBenchmark() {
// Trim the whitespaces and remove ` kB/s` from the end // Trim the whitespaces and remove ` kB/s` from the end
.trim() .trim()
.slice( 0, -5 ) .slice( 0, -5 ),
); );
} }

Loading…
Cancel
Save