Futago-za Ryuu
5f0001c3e5
Fix compatibility for older bins
7 years ago
Futago-za Ryuu
e6d018a88d
Update code format and style
...
This is related to my last commit. I've updated all the JavaScript files to satisfy 'eslint-config-futagozaryuu', my eslint configuration.
I'm sure I've probally missed something, but I've run all NPM scripts and Gulp tasks, fixed any bugs that cropped up, and updated some stuff (mainly related to generated messages), so as far as I can, tell this conversion is over (I know I've probally jixed it just by saying this ;P).
7 years ago
Futago-za Ryuu
3c6523ff83
Switched eslint configuration
...
Was using 'eslint-config-dmajda' by @dmajda, but since it's diffucult for me to use multiple styles across multiple projects, I'm switching to my own 'eslint-config-futagozaryuu'.
7 years ago
Futago-za Ryuu
9802bae15f
test/impact: Add compatibility for older bin files
...
This ensures the impact test doesn't throw when testing against older commits that contain the bin files at their orignal locations.
7 years ago
Futago-za Ryuu
abadaf4d5d
Add test for empty grammars
...
This add's a test that ensures grammars without any rules are not accepted.
7 years ago
Futago-za Ryuu
96a386ff15
Merged documents for test suites
7 years ago
Futago-za Ryuu
5c36738a52
Rewrote test/impact as a Node.js script
...
"test/impact" was a bash script before, and used tools spefic to some systems, which required Window users to have more software installed.
This rewrite removes the bash script and add's a cross platform Node.js script that doesn't depend on platform-spefic tools.
7 years ago
Futago-za Ryuu
08bbd6d5b6
Moved "eslint-env node" to the root
...
It seem's kind of pointless setting the comment "/* eslint-env node */" at the top of only some JavaScript files when nearly all of them are Node.js releated, so I moved this option to the root level config, only leaving the 'lib' folder as "/* eslint-env commonjs */"
7 years ago
Futago-za Ryuu
5a833bd982
Moved all spec and benchmark tests
...
- Moved benchmark to test/benchmark
- Moved tests to test/spec
- Removed individual servers
- Implemented single test server
- Moved server assets to test/server
- Updated Gulpfile.js
- Moved tools/impact to test/impact
This commit move's nearly all code related to testing the PEG.js module into the test directory, and also ensures they run as they did before the move.
7 years ago
felix
cb3c5f4473
Improve error message for unbalanced brace. ( #534 )
...
Currently, an open brace without a corresponding brace will emit this confusing error message:
> Expected "!", "$", "&", "(", "*", "+", ".", "/", "/*", "//", ";", "?", character class, code block, comment, end of line, identifier, literal, or whitespace but "{" found.
This change adds an error case to the grammar to make it clear what the problem is.
7 years ago
felix
ee00a1ae6a
Check allowedStartRules exist. ( #532 )
...
Fixes #524
7 years ago
felix
958e15879d
Reimplement offset() and add range(). ( #528 )
...
* Reimplement offset()
* Implement range()
Fixes #526 , thanks @felix9
7 years ago
Futago-za Ryuu
57bb28414e
Merge pull request #509 from Mingun/simplify-bc
...
Simplify bytecode: remove unnecessary opcode.
7 years ago
Futago-za Ryuu
55bcaa46ef
Updated ESLint configuration files
...
- added "root" option to main config
- moved "env.commonjs" to root
7 years ago
Mingun
575db38d1f
Simplify bytecode: remove unnecessary opcode.
...
Now generated sources looks little better :)
7 years ago
David Majda
205c55d309
Tests: s/Spec/Test/
...
Missed in f5a372b075
(I probably grepped
case-sensitively).
8 years ago
David Majda
2942fa1867
Tests: Make tracing tests more specific
...
Check that the console and the default tracer are called with specific
arguments in given order. Previously the order of calls wasn't checked.
8 years ago
David Majda
9cc35d2cab
Tests: DRY up tracing tests
8 years ago
David Majda
5d6bd75619
Tests: Use "to.be.{a,an}" instead of "expect(typeof ...)"
8 years ago
David Majda
6817f3b964
Tests: Require specific modules instead of the whole library
...
Requiring the whole library was a relict from the time where the tests
were exercising the browser build when run in the browser.
8 years ago
David Majda
f5a372b075
Use "test" and "tests" instead of "spec" and "specs"
...
This reflects a convention used in most JavaScript projects. The change
involves renaming the "spec" directory, Gulp task, etc.
8 years ago
David Majda
23e04bb4f4
Jasmine: Delete remains the old test suite
13 years ago
David Majda
8ef5f08c90
Jasmine: Convert |removeProxyRules| compiler pass tests
13 years ago
David Majda
eaf2af8e7b
Jasmine: Convert |computeParams| compiler pass tests
13 years ago
David Majda
4edc9982cc
Jasmine: Convert |computeVarNames| compiler pass tests
13 years ago
David Majda
1471df9a69
Jasmine: Convert |reportLeftRecursion| compiler pass tests
13 years ago
David Majda
2889ca72fc
Jasmine: Convert |reportMissingRules| compiler pass tests
13 years ago
David Majda
e030834a0e
Delete test/compiler-test.js
13 years ago
David Majda
112e4122d0
Jasmine: Convert remaining error reporting tests
13 years ago
David Majda
94aaf4ec75
Jasmine: Convert error position reporting tests
13 years ago
David Majda
1825dd4a42
Jasmine: Convert start rule tests
13 years ago
David Majda
68bfeac134
Jasmine: Drop the idempotence test
...
The code this test covered is long gone.
13 years ago
David Majda
f61813238d
Jasmine: Convert complex example tests
13 years ago
David Majda
022a51f94e
Jasmine: Convert cache tests
13 years ago
David Majda
e9f7255d47
Jasmine: Convert initializer tests
13 years ago
David Majda
f5f40f68d2
Jasmine: Convert choice matching tests
13 years ago
David Majda
1b0789fbae
Jasmine: Convert sequence matching tests
13 years ago
David Majda
ae8a89c9e4
Jasmine: Convert labeled matching tests
13 years ago
David Majda
b013ba8cc9
Jasmine: Convert simple and matching tests
13 years ago
David Majda
343e9db525
Jasmine: Convert simple not matching tests
13 years ago
David Majda
2bb25efa44
Jasmine: Convert semantic and code tests
13 years ago
David Majda
f04096189f
Jasmine: Convert semantic not code tests
13 years ago
David Majda
ccf31f8822
Jasmine: Convert optional matching tests
13 years ago
David Majda
669668fc1b
Jasmine: Convert zero or more matching tests
13 years ago
David Majda
1ab06ff906
Jasmine: Convert one or more matching tests
13 years ago
David Majda
03716a562d
Jasmine: Convert action code tests
13 years ago
David Majda
b06bd774f5
Jasmine: Convert rule reference matching tests
13 years ago
David Majda
14c11b4dfc
Jasmine: Convert class matching tests
13 years ago
David Majda
75ab03dc85
Jasmine: Convert any matching tests
13 years ago
David Majda
ec48742032
Jasmine: Convert literal matching tests
13 years ago
David Majda
feddd10190
Jasmine: Delete test/parser-test.js
13 years ago
David Majda
94205ab639
Jasmine: Convert tests of parser's "grammar" rule
13 years ago
David Majda
f746189f2b
Jasmine: Convert tests of parser's "initializer" rule
13 years ago
David Majda
171d62fce4
Jasmine: Convert tests of parser's "rule" rule
13 years ago
David Majda
e17d4de7ae
Jasmine: Convert tests of parser's "expression" rule
13 years ago
David Majda
cc22086a09
Jasmine: Convert tests of parser's "choice" rule
13 years ago
David Majda
434abdb272
Jasmine: Convert tests of parser's "sequence" rule
13 years ago
David Majda
ec8889f85d
Jasmine: Convert tests of parser's "labeled" rule
13 years ago
David Majda
bf6d412a4f
Jasmine: Convert tests of parser's "prefixed" rule
13 years ago
David Majda
3e083cc51b
Jasmine: Convert tests of parser's "suffixed" rule
13 years ago
David Majda
45f825c24f
Jasmine: Convert tests of parser's "primary" rule
13 years ago
David Majda
57bbcd71e5
Jasmine: Convert tests of parser's "action" rule
13 years ago
David Majda
35771e15bc
Jasmine: Convert tests of parser's "braced" rule
13 years ago
David Majda
b1cb214e8b
Jasmine: Convert non-tests of parser's character class rules
13 years ago
David Majda
4f5b78b372
Jasmine: Convert tests of parser's "identifier" rule
13 years ago
David Majda
a3d93f000f
Jasmine: Convert tests of parser's "literal" rule
13 years ago
David Majda
573db92583
Jasmine: Convert tests of parser's "string" rule
13 years ago
David Majda
fa65018b15
Jasmine: Convert tests of parser's "doubleQuotedString" rule
13 years ago
David Majda
0e384b31f4
Jasmine: Convert tests of parser's "doubleQuotedCharacter" rule
13 years ago
David Majda
2f5f8d5932
Jasmine: Convert tests of parser's "simpleDoubleQuotedCharacter" rule
13 years ago
David Majda
fb01f48c97
Jasmine: Convert tests of parser's "singleQuotedString" rule
13 years ago
David Majda
d3b3fe9b78
Jasmine: Convert tests of parser's "singleQuotedCharacter" rule
13 years ago
David Majda
124e45606c
Jasmine: Convert tests of parser's "simpleSingleQuotedCharacter" rule
13 years ago
David Majda
ba68919b0a
Jasmine: Convert tests of parser's "class" rule
13 years ago
David Majda
5fb59b05f2
Jasmine: Convert tests of parser's "classCharacterRange" rule
13 years ago
David Majda
d29a753b8d
Jasmine: Convert tests of parser's "classCharacter" rule
13 years ago
David Majda
b9ae8f9561
Jasmine: Convert tests of parser's "bracketDelimitedCharacter" rule
13 years ago
David Majda
da4ac8bb92
Jasmine: Convert tests of parser's "simpleBracketDelimitedCharacter" rule
13 years ago
David Majda
2bb266bbaf
Jasmine: Convert tests of parser's "simpleEscapeSequence" rule
13 years ago
David Majda
2619becb9d
Jasmine: Convert tests of parser's "zeroEscapeSequence" rule
13 years ago
David Majda
2b43f8ebb8
Jasmine: Convert tests of parser's "hexEscapeSequence" rule
13 years ago
David Majda
0bbca136a2
Jasmine: Convert tests of parser's "unicodeEscapeSequence" rule
13 years ago
David Majda
a27dc5ae4a
Jasmine: Convert tests of parser's "eolEscapeSequence" rule
13 years ago
David Majda
4f91286013
Jasmine: Convert non-tests of parser's character class rules
13 years ago
David Majda
3bc61c4c50
Jasmine: Convert tests of parser's "__" rule
13 years ago
David Majda
fadaef84dd
Jasmine: Convert tests of parser's "comment" rule
13 years ago
David Majda
b5ccaed491
Jasmine: Convert tests of parser's "singleLineComment" rule
13 years ago
David Majda
dac3b0d8d9
Jasmine: Convert tests of parser's "multiLineComment" rule
13 years ago
David Majda
328edf667c
Jasmine: Convert tests of parser's "eol" rule
13 years ago
David Majda
b4cffee9d4
Jasmine: Convert tests of parser's "eolChar" rule
13 years ago
David Majda
a46b9c197b
Jasmine: Convert tests of parser's "whitespace" rule
13 years ago
David Majda
53f70b9eb9
Move compiler passes and their tests into a subdirectory
13 years ago
David Majda
f046e0a838
Move compiler-related source files and tests into a subdirectory
13 years ago
David Majda
ef06621a2b
Remove extra comma in compiler tests
13 years ago
David Majda
5b3321d302
Implement |cache| option for |PEG.buildParser|
...
This option enables/disables the results cache in generated parsers.
Until now, it was always enabled, but after this commit it needs to be
enabled explicitly (i.e. the |cache| option default value is |false|).
The reason is that parsing without it is *much* faster according to the
benchmark.
Note that disabling the cache breaks the linear parsing time guarantee,
meaning that with some grammars you can get exponential parsing time
with respect to the input length. This, together with the possibility of
improving the cache performance in the future, is the reason to keep it
as an option.
Speed impact
------------
Before: 214.08 kB/s
After: 827.52 kB/s
Difference: 286.54%
Size impact
-----------
Before: 1045396 b
After: 949783 b
Difference: -9.15%
(Measured by /tools/impact with Node.js v0.6.6 on x86_64 GNU/Linux.)
13 years ago
David Majda
f3970bfa5c
Extend QUnit a bit more cleanly
13 years ago
David Majda
d35b21e9b2
Simplify the |indent| function in /test/run
13 years ago
David Majda
9d5990f80a
Update code formatting in /test/run to match conventions I use elsewhere
13 years ago
David Majda
6d624a89bd
Update bundled QUnit to version 1.5.0
13 years ago
David Majda
52d7ec2224
Implement |trackLineAndColumn| option for |PEG.buildParser|
...
This option makes the generated parser track line and column during
parsing. Tracked line and column are made available inside actions and
predicates as |line| and |column| variables.
Note that in actions these variables denote start position of the
action's expression while in predicates they denote the current
position. The slightly different behavior is motivated by expected
usage.
13 years ago