Browse Source

Fix comma-dangle warning from ESLint

master
Futago-za Ryuu 3 years ago
parent
commit
b7b87ea8ae
  1. 76
      packages/pegjs/lib/compiler/passes/generate-bytecode.js
  2. 46
      packages/pegjs/lib/compiler/passes/generate-js.js
  3. 2
      packages/pegjs/lib/compiler/passes/inference-match-result.js
  4. 2
      packages/pegjs/lib/compiler/passes/report-duplicate-labels.js
  5. 2
      packages/pegjs/lib/compiler/passes/report-duplicate-rules.js
  6. 2
      packages/pegjs/lib/compiler/passes/report-infinite-recursion.js
  7. 4
      packages/pegjs/lib/compiler/passes/report-infinite-repetition.js
  8. 2
      packages/pegjs/lib/compiler/passes/report-undefined-rules.js
  9. 2
      packages/pegjs/lib/compiler/passes/report-unused-rules.js
  10. 2
      packages/pegjs/lib/peg.js
  11. 4
      packages/pegjs/lib/util/js.js
  12. 50
      test/behavior/generated-parser-behavior.spec.js
  13. 56
      test/unit/compiler/passes/generate-bytecode.spec.js
  14. 6
      test/unit/compiler/passes/helpers.js
  15. 6
      test/unit/compiler/passes/inference-match-result.spec.js
  16. 4
      test/unit/compiler/passes/remove-proxy-rules.spec.js
  17. 2
      test/unit/compiler/passes/report-undefined-rules.spec.js
  18. 6
      test/unit/compiler/passes/report-unused-rules.spec.js
  19. 70
      test/unit/parser.spec.js
  20. 6
      tools/benchmark/browser.stub.js
  21. 2
      tools/benchmark/index.js
  22. 4
      tools/benchmark/runner.js
  23. 2
      tools/impact/index.js

76
packages/pegjs/lib/compiler/passes/generate-bytecode.js

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

46
packages/pegjs/lib/compiler/passes/generate-js.js

@ -147,13 +147,13 @@ function generateJS( ast, session, options ) {
return ast.literals
.map( ( c, i ) => "var " + l( i ) + " = " + buildLiteral( c ) + ";" )
.concat( "", ast.classes.map(
( c, i ) => "var " + r( i ) + " = " + buildRegexp( c ) + ";"
( c, i ) => "var " + r( i ) + " = " + buildRegexp( c ) + ";",
) )
.concat( "", ast.expectations.map(
( c, i ) => "var " + e( i ) + " = " + buildExpectation( c ) + ";"
( c, i ) => "var " + e( i ) + " = " + buildExpectation( c ) + ";",
) )
.concat( "", ast.functions.map(
( c, i ) => "var " + f( i ) + " = " + buildFunc( c ) + ";"
( c, i ) => "var " + f( i ) + " = " + buildFunc( c ) + ";",
) )
.join( "\n" );
@ -492,15 +492,15 @@ function generateJS( ast, session, options ) {
" case " + op.IF_ERROR + ":", // IF_ERROR t, f
indent10( generateCondition(
"stack[stack.length - 1] === peg$FAILED",
0
0,
) ),
"",
" case " + op.IF_NOT_ERROR + ":", // IF_NOT_ERROR t, f
indent10(
generateCondition(
"stack[stack.length - 1] !== peg$FAILED",
0
)
0,
),
),
"",
" 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, ...
indent10( generateCondition(
"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, ...
indent10( generateCondition(
"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, ...
indent10( generateCondition(
"peg$regexps[bc[ip + 1]].test(input.charAt(peg$currPos))",
1
1,
) ),
"",
" case " + op.ACCEPT_N + ":", // ACCEPT_N n
@ -697,7 +697,7 @@ function generateJS( ast, session, options ) {
session.fatal(
"Rule '" + rule.name + "', position " + pos + ": "
+ "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(
"Rule '" + rule.name + "', position " + pos + ": "
+ "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
parts.push(
stack.push( "[" + stack.pop( bc[ ip + 1 ] ).join( ", " ) + "]" )
stack.push( "[" + stack.pop( bc[ ip + 1 ] ).join( ", " ) + "]" ),
);
ip += 2;
break;
case op.TEXT: // TEXT
parts.push(
stack.push( "input.substring(" + stack.pop() + ", peg$currPos)" )
stack.push( "input.substring(" + stack.pop() + ", peg$currPos)" ),
);
ip++;
break;
@ -886,7 +886,7 @@ function generateJS( ast, session, options ) {
+ l( bc[ ip + 1 ] )
: "input.charCodeAt(peg$currPos) === "
+ ast.literals[ bc[ ip + 1 ] ].charCodeAt( 0 )
, 1
, 1,
);
break;
@ -896,7 +896,7 @@ function generateJS( ast, session, options ) {
+ ast.literals[ bc[ ip + 1 ] ].length
+ ").toLowerCase() === "
+ l( bc[ ip + 1 ] )
, 1
, 1,
);
break;
@ -908,12 +908,12 @@ function generateJS( ast, session, options ) {
parts.push( stack.push(
bc[ ip + 1 ] > 1
? "input.substr(peg$currPos, " + bc[ ip + 1 ] + ")"
: "input.charAt(peg$currPos)"
: "input.charAt(peg$currPos)",
) );
parts.push(
bc[ ip + 1 ] > 1
? "peg$currPos += " + bc[ ip + 1 ] + ";"
: "peg$currPos++;"
: "peg$currPos++;",
);
ip += 2;
break;
@ -923,7 +923,7 @@ function generateJS( ast, session, options ) {
parts.push(
ast.literals[ bc[ ip + 1 ] ].length > 1
? "peg$currPos += " + ast.literals[ bc[ ip + 1 ] ].length + ";"
: "peg$currPos++;"
: "peg$currPos++;",
);
ip += 2;
break;
@ -976,7 +976,7 @@ function generateJS( ast, session, options ) {
default:
session.fatal(
"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(
"\"" + util.stringEscape( rule.name ) + "\"",
ast.indexOfRule( rule.name )
ast.indexOfRule( rule.name ),
) ) );
parts.push( indent2( code ) );
parts.push( indent2( generateRuleFooter(
"\"" + util.stringEscape( rule.name ) + "\"",
s( 0 )
s( 0 ),
) ) );
parts.push( "}" );
@ -1746,7 +1746,7 @@ function generateJS( ast, session, options ) {
parts.push(
generateHeaderComment(),
""
"",
);
if ( dependencyVars.length > 0 ) {
@ -1769,7 +1769,7 @@ function generateJS( ast, session, options ) {
"export " + generateParserExports() + ";",
"",
"export default " + generateParserObject() + ";",
""
"",
);
return parts.join( "\n" );

2
packages/pegjs/lib/compiler/passes/inference-match-result.js

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

2
packages/pegjs/lib/compiler/passes/report-duplicate-labels.js

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

2
packages/pegjs/lib/compiler/passes/report-duplicate-rules.js

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

2
packages/pegjs/lib/compiler/passes/report-infinite-recursion.js

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

4
packages/pegjs/lib/compiler/passes/report-infinite-repetition.js

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

2
packages/pegjs/lib/compiler/passes/report-undefined-rules.js

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

2
packages/pegjs/lib/compiler/passes/report-unused-rules.js

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

2
packages/pegjs/lib/peg.js

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

4
packages/pegjs/lib/util/js.js

@ -39,7 +39,7 @@ const js = {
return sourceEscape(
s
.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 bracket
.replace( /\^/g, "\\^" ) // caret
.replace( /-/g, "\\-" ) // dash
.replace( /-/g, "\\-" ), // dash
);
},

50
test/behavior/generated-parser-behavior.spec.js

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

56
test/unit/compiler/passes/generate-bytecode.spec.js

@ -1,5 +1,3 @@
/* eslint-disable function-call-argument-newline */
"use strict";
const chai = require( "chai" );
@ -63,7 +61,7 @@ describe( "compiler pass |generateBytecode|", function () {
{ type: "literal", value: "b", ignoreCase: false },
{ type: "literal", value: "c", ignoreCase: false },
],
[]
[],
) );
} );
@ -119,19 +117,19 @@ describe( "compiler pass |generateBytecode|", function () {
[],
[],
[ { type: "rule", value: "start" } ],
[]
[],
) );
expect( pass ).to.changeAST( grammar2, constsDetails(
[ "a" ],
[],
[ { type: "rule", value: "start" } ],
[]
[],
) );
expect( pass ).to.changeAST( grammar3, constsDetails(
[],
[ { value: [ "a" ], inverted: false, ignoreCase: false } ],
[ { type: "rule", value: "start" } ],
[]
[],
) );
} );
@ -209,7 +207,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { 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" ],
[],
[ { 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: "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: "c", ignoreCase: false },
],
[]
[],
) );
} );
@ -441,7 +439,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -476,7 +474,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -504,7 +502,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -534,7 +532,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -568,7 +566,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -593,7 +591,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -624,7 +622,7 @@ describe( "compiler pass |generateBytecode|", function () {
expect( pass ).to.changeAST(
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: "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(
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: "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" ],
[],
[ { type: "literal", value: "a", ignoreCase: false } ],
[]
[],
) );
} );
@ -873,7 +871,7 @@ describe( "compiler pass |generateBytecode|", function () {
[ "a" ],
[],
[ { type: "literal", value: "A", ignoreCase: true } ],
[]
[],
) );
} );
@ -975,7 +973,7 @@ describe( "compiler pass |generateBytecode|", function () {
[],
[ { 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 } ],
[ { type: "class", value: [ "a" ], inverted: true, ignoreCase: false } ],
[]
[],
) );
} );
@ -1005,7 +1003,7 @@ describe( "compiler pass |generateBytecode|", function () {
[],
[ { 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,
},
],
[]
[],
) );
} );
@ -1098,7 +1096,7 @@ describe( "compiler pass |generateBytecode|", function () {
},
],
[],
[]
[],
), {}, { reportFailures: false } );
} );
@ -1130,7 +1128,7 @@ describe( "compiler pass |generateBytecode|", function () {
expect( pass ).to.changeAST(
grammar,
constsDetails( [], [], [ { type: "any" } ], [] )
constsDetails( [], [], [ { type: "any" } ], [] ),
);
} );
@ -1157,7 +1155,7 @@ describe( "compiler pass |generateBytecode|", function () {
grammar,
constsDetails( [], [], [], [] ),
{},
{ reportFailures: false }
{ reportFailures: false },
);
} );

6
test/unit/compiler/passes/helpers.js

@ -67,7 +67,7 @@ module.exports = function ( chai, utils ) {
"expected #{this} to report an error but it didn't",
"expected #{this} to not report an error but #{act} was reported",
null,
result
result,
);
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 not report ${ warningsCount } warnings`,
warnings,
messages
messages,
);
warnings.forEach( warning => {
@ -127,7 +127,7 @@ module.exports = function ( chai, utils ) {
messages.indexOf( warning ) !== -1,
"expected #{this} to report the warning #{exp}, but it didn't",
"expected #{this} to not report the warning #{exp}",
warning
warning,
);
} );

6
test/unit/compiler/passes/inference-match-result.spec.js

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

4
test/unit/compiler/passes/remove-proxy-rules.spec.js

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

2
test/unit/compiler/passes/report-undefined-rules.spec.js

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

6
test/unit/compiler/passes/report-unused-rules.spec.js

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

70
test/unit/parser.spec.js

@ -24,7 +24,7 @@ function varyParserOptions( block ) {
describe(
"with options " + chai.util.inspect( variant ),
() => block( variant )
() => block( variant ),
);
} );
@ -103,7 +103,7 @@ describe( "PEG.js grammar parser", function () {
function actionGrammar( code ) {
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 ) {
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,
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 not fail to parse but it failed with #{act}",
null,
result
result,
);
if ( ! passed && typeof props !== "undefined" ) {
@ -340,13 +340,13 @@ describe( "PEG.js grammar parser", function () {
it( "parses Grammar", function () {
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(
{ 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(
{ 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 () {
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 () {
expect( "start\n=\n'abcd';" ).to.parseAs(
oneRuleGrammar( literalAbcd )
oneRuleGrammar( literalAbcd ),
);
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 () {
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 () {
expect( "start = 'abcd' { code }" ).to.parseAs(
oneRuleGrammar( actionAbcd )
oneRuleGrammar( actionAbcd ),
);
expect( "start = 'abcd' { code }\n/\n'efgh' { code }" ).to.parseAs(
oneRuleGrammar( choice2 )
oneRuleGrammar( choice2 ),
);
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(
oneRuleGrammar( choice4 )
oneRuleGrammar( choice4 ),
);
} );
@ -402,10 +402,10 @@ describe( "PEG.js grammar parser", function () {
it( "parses ActionExpression", function () {
expect( "start = 'abcd' 'efgh' 'ijkl'" ).to.parseAs(
oneRuleGrammar( sequence )
oneRuleGrammar( sequence ),
);
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 () {
expect( "start = a:'abcd'" ).to.parseAs(
oneRuleGrammar( labeledAbcd )
oneRuleGrammar( labeledAbcd ),
);
expect( "start = a:'abcd'\nb:'efgh'" ).to.parseAs(
oneRuleGrammar( sequence2 )
oneRuleGrammar( sequence2 ),
);
expect( "start = a:'abcd'\nb:'efgh'\nc:'ijkl'\nd:'mnop'" ).to.parseAs(
oneRuleGrammar( sequence4 )
oneRuleGrammar( sequence4 ),