Chris Double
92d8140d87
Change ebnf-action to properly nest with attached parser
...
This allows removal of last-parser hack. Syntax of EBNF changes though.
Now an action must attach to a group:
<EBNF foo = (a b c) [[ ...act on group... ]] EBNF>
2008-03-20 03:05:40 +13:00
Chris Double
65fabeec11
remove => action and replace it with [[ code ]] in EBNF
...
Previously the action had to be a factor word and could only appear at the end of a rule:
: aword ( ast -- ast ) drop V{ 1 2 } ;
<EBNF foo = "a" "b" => aword EBNF>
Now actions can appear anywhere after an element, and can be any factor code between [[ ... ]] delimiters:
<EBNF foo = "a" "b" [[ drop V{ 1 2 } ]] EBNF>
<EBNF foo = "a" [[ drop 1 ]] "b" [[ drop 2 ]] EBNF>
Unfortunately since this means the ebnf>quot code uses the equivalent of eval, it no longer compiles nicely since it can't be inferred. The generated parsers however do compile.
2008-03-20 02:16:30 +13:00
Chris Double
c0b7bdf823
Add *, + and ? to list of non-allowed ebnf identifier characteres
2008-03-20 01:25:57 +13:00
Chris Double
82d54d3776
EBNF syntax change
...
[ ... ] is now ( ... )?
{ ... } is now ( ... )*
Added ( ... )+
2008-03-20 01:18:09 +13:00
Chris Double
64135b73e1
Add support for ensure-not and parsing any single character to EBNF
...
This allows, for example:
foo = {!("_" | "-") .}
This will match zero or more of any character, except for _ or -
2008-03-19 19:15:52 +13:00
Chris Double
eef6ae7827
Remove need for '.' to terminate rule lines in EBNF
2008-03-19 18:07:31 +13:00
Chris Double
9403d97e22
Add syntax-pack and grouped to ebnf refactoring
2008-03-19 17:52:22 +13:00
Chris Double
708d55fb8e
Add syntax word for ebnf
2008-03-19 17:37:08 +13:00
Chris Double
7578538122
Minor tidyup of ebnf
2008-03-19 17:34:47 +13:00
Chris Double
cc9a17b551
Use choice* and seq* in ebnf
2008-03-19 17:00:53 +13:00
Chris Double
4b37c9098e
Use multiline for parsing EBNF string
2008-03-19 16:54:42 +13:00
Doug Coleman
6378d38d63
add missing usings
2008-03-03 14:32:37 -06:00
Slava Pestov
e98cd1fd59
New convention for unit tests
2008-03-01 17:00:45 -05:00
Chris Double
c977d4a7fd
Merge git://factorcode.org/git/factor
2008-02-02 18:47:15 +13:00
Eduardo Cavazos
bff385269c
Lot's of USING: fixes for ascii or unicode
2008-02-01 18:26:32 -06:00
Chris Double
f272d54e49
Allow dashes in non-terminal names
2008-01-18 15:45:08 +13:00
Chris Double
240217f39e
Fix peg issues with recent factor changes
2008-01-13 04:38:59 -05:00
Chris Double
b655d4c759
Add tags to peg, peg.ebnf and peg.pl0
2007-12-20 17:11:37 +13:00
Chris Double
b51e4f642e
Fix broken ebnf actions
2007-11-29 17:41:58 +13:00
Chris Double
a4461ae408
Tidy up ebnf compilation
2007-11-29 17:24:02 +13:00
Chris Double
d3ac10aefc
Redo PL/0 parser using ebnf
2007-11-28 16:07:23 +13:00
Chris Double
e0adc1a7fa
Add optional to ebnf
2007-11-28 15:49:14 +13:00
Chris Double
d68a78c4a6
fix grouping of repeat0 in ebnf
2007-11-28 15:32:04 +13:00
Chris Double
0ef96c87d9
Add grouping operators for ebnf
2007-11-28 15:26:25 +13:00
Chris Double
15b1533f20
Fix precedence between choice/sequence in ebnf
2007-11-28 15:14:11 +13:00
Chris Double
28e9c0e6e0
Fix ebnf tests
2007-11-28 13:05:53 +13:00
Chris Double
35f96d1c85
Use words instead of quotations in ebnf actions
2007-11-28 13:03:16 +13:00
Chris Double
e5e430be4f
Remove ebnf debug
2007-11-28 12:52:05 +13:00
Chris Double
c455336da6
Add action rule to ebnf
2007-11-28 12:50:04 +13:00
Chris Double
4f0c40c05a
Change EBNF: to <EBNF ... EBNF>
2007-11-28 11:52:17 +13:00
Chris Double
88e93446b2
Add EBNF: word
2007-11-28 11:46:06 +13:00
Chris Double
7a414869de
Support for repeat0 in ebnf
2007-11-28 11:33:21 +13:00
Chris Double
16a0cc9eb1
add ebnf>quot
2007-11-28 11:25:34 +13:00
Chris Double
38806885e6
Compile ebnf->factor
2007-11-28 11:07:17 +13:00
Chris Double
ed359b6623
Syntax tree for ebnf
2007-11-28 10:45:21 +13:00
Chris Double
31d57422da
Start of EBNF parser
2007-11-27 18:13:36 +13:00