658 Commits

Author SHA1 Message Date
Niko Matsakis
b802906413 first basic test of lane table generation; seems to work 2016-06-01 04:58:38 -04:00
Niko Matsakis
d656a022fa add can_shift_terminal helper 2016-06-01 04:58:38 -04:00
Niko Matsakis
41c270ce14 make stategraph generic over lookahead 2016-06-01 04:58:38 -04:00
Niko Matsakis
1871219032 some new multimap methods 2016-06-01 04:58:38 -04:00
Niko Matsakis
4424752f46 Extend Action::Shift with the terminal being shifted, which is absent
in LR(0)
2016-06-01 04:58:38 -04:00
Niko Matsakis
9b42e78adc add initial lane table types and infrastructure (no tests yet) 2016-06-01 04:58:38 -04:00
Niko Matsakis
7710a55947 add LR(0) variant of build 2016-06-01 04:56:41 -04:00
Niko Matsakis
0ca108c5d1 filter reduce examples by their lookahead 2016-06-01 04:53:47 -04:00
Niko Matsakis
3de4edd597 modify reduce to not consider lookahead 2016-06-01 04:53:47 -04:00
Niko Matsakis
c2be80e51c refactor first into first0/first1 2016-06-01 04:53:47 -04:00
Niko Matsakis
61b2e52f51 refactor first 2016-06-01 04:53:47 -04:00
Niko Matsakis
fece7f5c5f remove dead code from trace graph enumerator 2016-06-01 04:53:47 -04:00
Niko Matsakis
1742b18177 make state set construction generic over lookahead 2016-06-01 04:53:47 -04:00
Niko Matsakis
b7648bcd9e separate shifts/reduces into distinct tables 2016-06-01 04:53:47 -04:00
Niko Matsakis
19a0852539 Make a trait for lookahead 2016-06-01 04:49:53 -04:00
Niko Matsakis
b0b7735bbc Rename Lookahead to Token 2016-06-01 04:48:16 -04:00
Niko Matsakis
568c2cf7be make the core LR types generic over lookahead 2016-06-01 04:46:22 -04:00
Niko Matsakis
d34f87b339 Merge pull request #105 from nikomatsakis/pascal
Default actions for `()`, make fewer options in recursive ascent code
2016-04-20 04:26:32 -04:00
Niko Matsakis
948649f627 Merge pull request #108 from dflemstr/output-control
Input/output directory control
2016-04-20 04:26:08 -04:00
David Flemström
061a580569 Make lalrpop code gen respect configured dirs 2016-04-17 14:27:09 +02:00
David Flemström
b10b23f6d7 Make in/out dirs configurable 2016-04-17 13:41:30 +02:00
Niko Matsakis
f8471defdd Merge pull request #106 from Nemikolh/fix-usage
Fix bug in USAGE and add regression tests.
2016-04-02 08:32:41 -04:00
Nemikolh
6056b9c8ff Fix bug in USAGE and add regression tests. 2016-04-02 13:10:00 +01:00
Niko Matsakis
2db28a3650 add forgotten test for unit default actions 2016-03-22 04:45:45 -04:00
Niko Matsakis
0a577f46d4 update test output 2016-03-22 04:42:18 -04:00
Niko Matsakis
cea227af0c modify ascent to avoid Option when possible
Whereas before all data on the parser stack was always stored in an
`&mut Option<T>` slot, we know analyze whether the option is truly
needed. The idea is roughly this: for each state, we analyze its actions
to see what suffix of its stack it will *definitely* pop and which
suffix it *may* pop. This is basically the difference between the
largest and shortest prefixes.
2016-03-22 04:42:17 -04:00
Niko Matsakis
78779edfa9 add preliminary Pascal grammar and test harness
Caveats: requires uppercase keywords, cannot handle
comments, somewhat dated grammar
2016-03-22 04:42:17 -04:00
Niko Matsakis
d46f2b504b Parse options properly 2016-03-22 04:42:17 -04:00
Niko Matsakis
7b4a4a870c Synthesize default action of () if type is () 2016-03-22 04:42:17 -04:00
Niko Matsakis
487004bddb Merge pull request #103 from reuben/patch-1
Fix typo in report_error_suggest_inline
2016-03-14 05:48:34 -04:00
Reuben Morais
667f20cda2 Fix typo in report_error_suggest_inline 2016-03-13 14:32:21 -03:00
Niko Matsakis
bb5c741658 Merge pull request #102 from nikomatsakis/configuration
Introduce a `Configuration` builder for advanced usage
2016-03-07 09:25:48 -05:00
Niko Matsakis
9896793d10 Remove some stray println calls. Fixes #98. 2016-03-07 05:48:38 -05:00
Niko Matsakis
b639c9e88b Port lalrpop-test to use new Configuration value
Also, start emitting comments again, since they are helpful to ME.
2016-03-07 05:47:43 -05:00
Niko Matsakis
d70cfac7d8 Introduce a Configuration builder for advanced usage; fix docopt handling. 2016-03-07 05:22:56 -05:00
Niko Matsakis
3dd9b2c157 Merge pull request #96 from nikomatsakis/v0.11.0
Publish v0.11.0
2016-03-02 04:25:24 -05:00
Niko Matsakis
969586b960 Bump the release number to 0.11.0 2016-02-28 05:36:50 -05:00
Niko Matsakis
6efc75b2a5 Update Cargo.toml to v0.11.0 2016-02-25 14:44:11 -05:00
Niko Matsakis
729e61d4ef Merge pull request #95 from nikomatsakis/locations-without-conflicts
Locations without conflicts
2016-02-25 07:51:30 -05:00
Niko Matsakis
cb53eb34f0 Fix lookahead test 2016-02-25 06:55:39 -05:00
Niko Matsakis
bcbf3c228d update release notes 2016-02-25 05:59:32 -05:00
Niko Matsakis
a9ec498c9e extend with some further tests where @R and @L are used in weird ways to
try and get assertion errors etc
2016-02-25 05:55:00 -05:00
Niko Matsakis
396b123f51 add a comment explaining how action code looks 2016-02-25 05:55:00 -05:00
Niko Matsakis
e79e2c4858 extend the loc_issue_90 test a bit more 2016-02-25 05:55:00 -05:00
Niko Matsakis
3d4d097373 stop carrying lookbehind around and just extract it from the top of the stack 2016-02-25 05:55:00 -05:00
Niko Matsakis
7e8602562e do not pass lookahead/lookbehind to actions if there are symbols 2016-02-25 05:54:59 -05:00
Niko Matsakis
7431af506d add a regression test for loc #90 2016-02-25 05:54:59 -05:00
Niko Matsakis
93a2a48219 enable inlining of $L and $R (and fix some bugs) 2016-02-25 05:54:59 -05:00
Niko Matsakis
cc37797eaa package up each nonterminal as a (L, T, L) pair 2016-02-25 05:54:56 -05:00
Niko Matsakis
df60aefc30 change lookahead to be passed unconditionally 2016-02-25 05:54:56 -05:00