David Majda
47969a2f61
Replace |for| loop iterating over sequence elements with |each|
2011-10-03 15:12:50 +02:00
David Majda
a19ea83ffa
Replace |for| loop iterating over compiler passes with |each|
2011-10-03 14:57:09 +02:00
David Majda
cd5490dee4
Make pass list customizable via |PEG.compiler.appliedPassNames| property
2011-10-03 14:57:09 +02:00
David Majda
8a0276ffb7
Unify checks and passes
...
There is no real reason to have them separated.
2011-10-03 14:57:09 +02:00
David Majda
6cd5bdc5e6
Passes now do not return anything (they always modify the AST in-place)
2011-10-03 14:57:09 +02:00
David Majda
3983f46d5d
Rename |reportMissingReferencedRules| check to |reportMissingRules|
...
The new name is shorter, there is no real loss of meaning.
2011-10-03 14:56:54 +02:00
David Majda
64d26e5db2
Make names of compiler checks and passes verbs
2011-10-03 13:34:25 +02:00
David Majda
2a82d863e5
Regenerate src/parser.js (forgot to do it in previous commit)
2011-10-01 19:50:52 +02:00
David Majda
8acea01525
Fix reported error position when part of the input is not consumed
...
Closes GH-48.
2011-10-01 18:46:57 +02:00
David Majda
c90e7f369b
Fix regexp for detecting command-line options in /bin/pegjs
...
Closes GH-51.
2011-10-01 16:59:05 +02:00
David Majda
5013f79e8d
Make "jake clean" and "jake distclean" check deleted directory existence
...
Closes GH-52.
2011-10-01 16:50:31 +02:00
David Majda
211a1116e4
Fix stack depth computations for empty sequences
...
Part of a fix for GH-53.
2011-09-30 19:47:05 +02:00
David Majda
afdcb6fc4f
Fix |posStackDepth| computation for rules
...
Rules by themselves do not need any variable for storing position.
Part of a fix for GH-53.
2011-09-30 17:57:48 +02:00
David Majda
756b6fc473
Fix |resultStackDepth| computation for sequences
...
The |1 + ...| was wrong -- sequence does not need its own variable since
it reuses the one used by the first item.
Part of a fix for GH-53.
2011-09-30 17:23:57 +02:00
David Majda
9c3da347cc
Fix string parsing tests
...
The tests were wrong because the |string| rule is not used to parse
literals but rule names.
2011-09-30 16:49:50 +02:00
David Majda
3421bdb813
Test trailing characters for strings and literals at correct places
2011-09-30 16:44:44 +02:00
David Majda
c639c1fc83
PEG.js grammar: Replace two instances of |string / ""| by |string?|
2011-09-30 16:37:47 +02:00
David Majda
c04af99df8
Implament case-insensitive class matching
2011-09-30 11:45:36 +02:00
David Majda
b540b2d460
Implement case-insensitive literal matching
2011-09-30 11:20:37 +02:00
David Majda
88c50a3e33
Add tests for zero- and one-char literals
...
We optimize these cases in the emitter so we should better test them.
2011-09-30 10:53:12 +02:00
David Majda
1c11e4aaa3
Split |literal| rule in the PEG.js grammar to |literal| and |string|
...
This is just a formality now but it will make sense later when literals
(but not strings) will allow "i" flag for case-insensitive matching.
2011-09-30 10:21:29 +02:00
David Majda
950cc80738
Few small README.md fixes
2011-09-29 17:02:02 +02:00
David Majda
da12c2f5d4
Compile Codie templates only once
2011-09-29 13:47:50 +02:00
David Majda
a5af9611a2
Introduce |context.delta| function to make creating contexts more DRY
2011-09-27 16:36:58 +02:00
David Majda
be3b87ec71
Refactor "grammar" emitter function a bit
2011-09-24 17:09:58 +02:00
David Majda
2b09a7116d
Refactor "rule" emitter function a bit
2011-09-24 17:09:53 +02:00
David Majda
131b6dd01f
Refactor "sequence" emitter function a bit
2011-09-24 17:09:53 +02:00
David Majda
f29ff236b8
Refactor "simple_and" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
506d8107a1
Refactor "simple_not" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
13ae52b2bf
Refactor "semantic_and" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
9111020ca2
Refactor "semantic_not" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
cc3bd4f310
Refactor "zero_or_more" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
85c1b010b6
Refactor "one_or_more" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
b5ca96dd48
Refactor "action" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
50a0371e2d
Refactor "rule_ref" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
eaba6b8a9d
Refactor "literal" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
2120c908c7
Refactor "class" emitter function a bit
2011-09-24 17:09:52 +02:00
David Majda
0748fee1d3
Use Codie for code templates
...
This will allow moving some code into the templates later.
2011-09-24 17:09:45 +02:00
David Majda
38c25efde0
Use single quotes for code in the emitter
...
Strings with code should use single quotes so that double quotes (which
I generally prefer) could be used in the code itself without escaping.
2011-09-23 14:08:08 +02:00
David Majda
45c99f8f6b
Generate more efficient code for empty literals
...
Original patch by Wolfgang Kluge:
797173f676
2011-09-18 20:12:26 +02:00
David Majda
4de3cc1716
Fix comment typos
...
Original patch by Wolfgang Kluge:
07e0cfcc02
2011-09-18 20:06:52 +02:00
David Majda
eceda8b5e8
Use correct disjunction operator in |computeErrorPosition|
...
Original patch by Wolfgang Kluge:
6b793b33df
2011-09-18 18:08:58 +02:00
David Majda
cb2415a4fd
Fix output printed during test failures
...
Expected value was being printed instead of the actual one.
Original patch by Wolfgang Kluge:
1e875d4479
2011-09-18 18:05:10 +02:00
David Majda
50be1081e0
Sort JSHint options alphabetically
2011-09-18 16:55:27 +02:00
David Majda
ce40a8e815
benchmark/index.js: Use radix in |parseInt| call
...
Fixes the following JSHint error:
./benchmark/index.js: line 59, col 18, Missing radix parameter.
2011-09-18 16:25:47 +02:00
David Majda
c8c5187768
Make "jake hint" check benchmark/index.js
2011-09-18 16:25:47 +02:00
David Majda
11a44948ab
Extract JavaScript and CSS from benchmark/index.html into separate files
...
JavaScript is extracted to make it JSHintable, CSS is just for symmetry.
2011-09-18 16:25:47 +02:00
David Majda
8841c31d1b
benchamrk/runner.js: Add "()" to constructor invocations
...
Fixes the following JSHint errors:
./benchmark/runner.js: line 73, col 28, Missing '()' invoking a constructor.
./benchmark/runner.js: line 75, col 33, Missing '()' invoking a constructor.
2011-09-18 16:25:47 +02:00
David Majda
cad3013966
benchmark/runner.js: Add missing semicolon
...
Fixes the following JSHint error:
./benchmark/runner.js: line 21, col 42, Missing semicolon.
2011-09-18 16:25:47 +02:00
David Majda
17f62ae9e3
test/parser-test.js: Replace "\0" with "\x00"
...
Fixes the following JSHint errors:
./test/parser-test.js: line 353, col 54, Bad escapement.
./test/parser-test.js: line 384, col 54, Bad escapement.
./test/parser-test.js: line 436, col 60, Bad escapement.
./test/parser-test.js: line 437, col 60, Bad escapement.
./test/parser-test.js: line 472, col 50, Bad escapement.
2011-09-18 16:25:47 +02:00