updated on Thu Jan 12 08:01:00 UTC 2012
[aur-mirror.git] / gazelle-git / 4.patch
blob88ea826aaffb8bdeda7fd5adcf536bffcf512f8c
1 diff --git a/docs/gzl-rtn-graph b/docs/gzl-rtn-graph
2 index 4e6c756..40a7166
3 --- a/docs/gzl-rtn-graph
4 +++ b/docs/gzl-rtn-graph
5 @@ -19,10 +19,9 @@ function escape(str)
6 return str:gsub("[\"\\]", "\\%1")
7 end
9 -grammar = parse_grammar(CharStream:new(io.stdin:read("*a")))
10 -if grammar.rtns:count() ~= 1 then
11 - error("This filter can only deal with grammars that have a single nonterminal")
12 -end
13 +grammar = Grammar:new()
14 +grammar:parse_source_string(io.stdin:read("*a"))
15 +grammar:process()
16 for _nonterm, _rtn in grammar.rtns:each() do
17 nonterm = _nonterm
18 rtn = _rtn
19 @@ -45,9 +44,6 @@ for state in each(rtn:states()) do
20 if fa.is_nonterm(edge_val) then
21 outfile:write(string.format(' "%s" -> "%s" [label="<%s>"]\n', tostring(state), tostring(target_state), escape(edge_val.name)))
22 else
23 - if grammar.attributes.regex_text[edge_val] then
24 - edge_val = "/" .. grammar.attributes.regex_text[edge_val] .. "/"
25 - end
26 outfile:write(string.format(' "%s" -> "%s" [label="%s"]\n', tostring(state), tostring(target_state), escape(edge_val)))
27 end
28 end
29 diff --git a/docs/manual.txt b/docs/manual.txt
30 index 170f44f..eba0d99 100644
31 --- a/docs/manual.txt
32 +++ b/docs/manual.txt
33 @@ -293,6 +293,8 @@ graph is just a single path.
35 ["simplerule1.png", "graph 1: assign -> ident \"=\" expr;"]
36 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
37 +ident -> "lit_ident";
38 +expr -> "lit_expr";
39 assign -> ident "=" expr;
40 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
42 @@ -332,6 +334,11 @@ rule are what you intended.
44 ["altrule2.png", "graph for: name -> (fname (mname | minitial) | nickname) surname"]
45 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
46 +fname -> "lit_fname";
47 +mname -> "lit_mname";
48 +minitial -> "lit_minitial";
49 +nickname -> "lit_nickname";
50 +surname -> "lit_surname";
51 name -> (fname (mname | minitial) | nickname) surname;
52 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
54 @@ -382,6 +389,8 @@ object -> "{" (string ":" value) *(",") "}";
56 ["reprule1.png", "Graph for the above JSON object expression."]
57 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
58 +string -> "lit_string";
59 +value -> "lit_value";
60 object -> "{" (string ":" value) *(",") "}";
61 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
63 @@ -1045,6 +1054,8 @@ same JSON rule as the first example:
65 ["json.png", "Gazelle's graph of the JSON rule above"]
66 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
67 +string -> "lit_string";
68 +value -> "lit_value";
69 object -> "{" (string ":" value) *(,) "}";
70 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
72 @@ -1099,6 +1110,8 @@ the input imply what transitions. For example, consider the rule:
74 ["hardrule1.png", "graph 3: word -> numbers | letters;"]
75 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76 +numbers -> "lit_numbers";
77 +letters -> "lit_letters";
78 word -> numbers | letters;
79 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
81 @@ -1113,6 +1126,7 @@ in a final state that has transitions out of it? Consider this rule:
83 ["hardrule2.png", "graph 3: sentence -> word*;"]
84 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
85 +word -> "lit_word";
86 sentence -> word*;
87 gzl-rtn-graph~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~