Skip to content
Newer
Older
100644 83 lines (71 sloc) 3.25 KB
81bf4d7 @masak [README] modifications; added STATUS and COOLTHINGS
authored
1 PGE contains three regex engines: a Perl 6 one, a Perl 5 one, and one for
2 file globbing. The current focus on GGE is to port the Perl 6 regex engine
3 enough to be able to parse arbitrary Perl 6 grammars (to the extent that
4 PGE can).
5
6 The implementation work proceeds in order of the PGE test files. The
7 rx_quantifiers was the first one to be attacked, because quantifiers seemed
8 like great fun. A few tests have been marked TODO in that file, pending
9 re-entrant regex parsing which stops on a specified precedence level.
10
11 The OPTable tests were next. Only one test was marked TODO in there; it
12 depends on the :parsed argument accepting a GGE::Perl6Regex object as its
13 value. (No real obstacle to that one; just haven't found it necessary.)
14
16f60a8 @masak [STATUS] update
authored
15 All tests pass in rx_metachars. A few tests are marked TODO in rx_charclass,
11314b3 @masak [STATUS] updated
authored
16 having to do with double-quoted literals. The test marked TODO in rx_backtrack
0b43d52 @masak [STATUS] updated
authored
17 is marked TODO in PGE as well, and pmichaud has confirmed it's likely bogus.
6f47e21 @masak [STATUS] updated
authored
18
0b43d52 @masak [STATUS] updated
authored
19 Some tests had to be marked TODO in rx_modifiers, because they used lookahead,
20 which isn't implemented yet. Some TODOs in rx_captures were inherited from
6f47e21 @masak [STATUS] updated
authored
21 PGE.
81bf4d7 @masak [README] modifications; added STATUS and COOLTHINGS
authored
22
23 name tests status
24 --------------------------------------------------
25 rx_quantifiers 179 DONE (a few todo tests remain)
26 t/03-optable.t 42 DONE (one todo test remains)
27 rx_metachars 238 DONE
16f60a8 @masak [STATUS] update
authored
28 rx_charclass 63 DONE (a few todo tests remain)
11314b3 @masak [STATUS] updated
authored
29 rx_backtrack 23 DONE (one todo test remains)
f465b90 @masak [STATUS] updated
authored
30 rx_modifiers 102 DONE (a few todo tests remain)
0b43d52 @masak [STATUS] updated
authored
31 rx_captures 48 DONE (a few todo tests remain)
32 rx_subrules 60 work in progress
81bf4d7 @masak [README] modifications; added STATUS and COOLTHINGS
authored
33
34 rx_lookarounds 33 to be done
35 rx_goal 11 to be done
36 rx_syntax 33 to be done
37
38 Here's a copy of PGE's STATUS, adapted for GGE:
39
40 Perl 6 rule features implemented
41 --------------------------------
42 * standard regular expression constructs
43 * quantifiers (*, +, ?, *?, +?, ??, **{m..n}?)
44 * alternation (|)
45 * conjunction (&)
46 * non-capturing groups
47 * enumerated character lists (<[abcdef]>, <-[a..f]>)
48 * character classes (., \d, \w, \s, \n, \e, \f, \r, \t, \x[hhh], \o[nnn])
49 * anchors (^, $, ^^, $$, \b, \b)
50 * \c[...] and \C[...]
11314b3 @masak [STATUS] updated
authored
51 * cut operators (:, ::, :::, <commit>)
81bf4d7 @masak [README] modifications; added STATUS and COOLTHINGS
authored
52 * capturing groups
53 * modifiers :i, :ignorecase, :s, :sigspace (with synonyms :w and :words)
54 * negated character classes
55 * capturing subrules (<expr>)
56 * non-capturing subrules (<.expr>)
57 * negated subrules (<!expr>)
6f47e21 @masak [STATUS] updated
authored
58 * built-in rules: <alpha>, <digit>, <alnum>, <upper>, <lower>,
59 <xdigit>, <space>, <cntrl>, <punct>
81bf4d7 @masak [README] modifications; added STATUS and COOLTHINGS
authored
60 * backreferences ($0, $1, $<foo>)
61 * scalar subrule and subpattern aliases ($<foo>:=(...), $0:=(...))
6f47e21 @masak [STATUS] updated
authored
62
63
64 Perl 6 rule features to-do
65 --------------------------
66 * composed character classes (<+alpha-[aeiou]>)
67 * lookahead and lookbehind (<before> and <after>)
68 * built-in rules: <null>, <fail>, <print>, <graph>,
69 <blank>, <sp>, <lt>, <gt>, <dot>, <ws>, <p6rule>, <p5regexp>
81bf4d7 @masak [README] modifications; added STATUS and COOLTHINGS
authored
70 * balanced delimited text (<GGE::Text::bracketed>)
71 * embedded closures ({{ puts "hello" }})
72 * :lang() modifier
73 * firstchar/nextchar optimizations
74 * lookbehind according to S05 definition
75 * <cut> assertion
76 * versions of <commit> and cuts that release backtracking state
77 * :perl5 modifier
78 * literal assertions (<'literal'>)
79 * interpolated assertions (<"literal">)
80 * array and hash aliasing (@<foo>:=(...), %<foo>:=(...))
81 * don't generate unneeded internal data structures (e.g., gpad)
82
Something went wrong with that request. Please try again.