|
@@ -1,6 +1,6 @@
|
|
|
-module(erlydtl_parser).
|
|
|
-export([parse/1, parse_and_scan/1, format_error/1]).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 65).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 68).
|
|
|
|
|
|
extends({_, Line, [Name]}) ->
|
|
|
%% TODO: check if string or variable, now it is assumed it is string
|
|
@@ -11,6 +11,9 @@ block({_, Line, [Name]}, Content) ->
|
|
|
|
|
|
tag({_, Line, Args}) ->
|
|
|
{tag, Line, Args}.
|
|
|
+
|
|
|
+for({_, Line, [Var, _, List]}, Content) ->
|
|
|
+ {for, Line, list_to_atom(Var), List, Content}.
|
|
|
-file("/Users/rsaccon/R11B/erlang/lib/parsetools-1.4.1.1/include/yeccpre.hrl", 0).
|
|
|
%% ``The contents of this file are subject to the Erlang Public License,
|
|
|
%% Version 1.1, (the "License"); you may not use this file except in
|
|
@@ -104,7 +107,7 @@ yecctoken2string(Other) ->
|
|
|
|
|
|
|
|
|
|
|
|
--file("src/erlydtl/erlydtl_parser.erl", 107).
|
|
|
+-file("src/erlydtl/erlydtl_parser.erl", 110).
|
|
|
|
|
|
yeccpars2(0, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
__NewStack = yeccpars2_0_(__Stack),
|
|
@@ -115,12 +118,14 @@ yeccpars2(1, block, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars1(__Ts, __Tzr, 3, [1 | __Ss], [__T | __Stack]);
|
|
|
yeccpars2(1, extends, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars1(__Ts, __Tzr, 4, [1 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(1, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+yeccpars2(1, for, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars1(__Ts, __Tzr, 5, [1 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(1, tag, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+yeccpars2(1, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars1(__Ts, __Tzr, 6, [1 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(1, var, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+yeccpars2(1, tag, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars1(__Ts, __Tzr, 7, [1 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(1, var, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 8, [1 | __Ss], [__T | __Stack]);
|
|
|
yeccpars2(1, _, _, _, __T, _, _) ->
|
|
|
yeccerror(__T);
|
|
|
yeccpars2(2, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
@@ -129,33 +134,58 @@ yeccpars2(2, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars2(yeccgoto('Elements', hd(__Nss)), __Cat, __Nss, __NewStack, __T, __Ts, __Tzr);
|
|
|
yeccpars2(3, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
__NewStack = yeccpars2_3_(__Stack),
|
|
|
- yeccpars2(8, __Cat, [3 | __Ss], __NewStack, __T, __Ts, __Tzr);
|
|
|
+ yeccpars2(11, __Cat, [3 | __Ss], __NewStack, __T, __Ts, __Tzr);
|
|
|
yeccpars2(4, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
__NewStack = yeccpars2_4_(__Stack),
|
|
|
yeccpars2(yeccgoto('Element', hd(__Ss)), __Cat, __Ss, __NewStack, __T, __Ts, __Tzr);
|
|
|
yeccpars2(5, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars2(yeccgoto('Element', hd(__Ss)), __Cat, __Ss, __Stack, __T, __Ts, __Tzr);
|
|
|
+ __NewStack = yeccpars2_5_(__Stack),
|
|
|
+ yeccpars2(9, __Cat, [5 | __Ss], __NewStack, __T, __Ts, __Tzr);
|
|
|
yeccpars2(6, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- __NewStack = yeccpars2_6_(__Stack),
|
|
|
- yeccpars2(yeccgoto('Element', hd(__Ss)), __Cat, __Ss, __NewStack, __T, __Ts, __Tzr);
|
|
|
+ yeccpars2(yeccgoto('Element', hd(__Ss)), __Cat, __Ss, __Stack, __T, __Ts, __Tzr);
|
|
|
yeccpars2(7, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ __NewStack = yeccpars2_7_(__Stack),
|
|
|
+ yeccpars2(yeccgoto('Element', hd(__Ss)), __Cat, __Ss, __NewStack, __T, __Ts, __Tzr);
|
|
|
+yeccpars2(8, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
yeccpars2(yeccgoto('Element', hd(__Ss)), __Cat, __Ss, __Stack, __T, __Ts, __Tzr);
|
|
|
-yeccpars2(8, block, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars1(__Ts, __Tzr, 3, [8 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(8, endblock, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars1(__Ts, __Tzr, 9, [8 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(8, extends, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars1(__Ts, __Tzr, 4, [8 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(8, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars1(__Ts, __Tzr, 5, [8 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(8, tag, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars1(__Ts, __Tzr, 6, [8 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(8, var, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- yeccpars1(__Ts, __Tzr, 7, [8 | __Ss], [__T | __Stack]);
|
|
|
-yeccpars2(8, _, _, _, __T, _, _) ->
|
|
|
+yeccpars2(9, block, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 3, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, endfor, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 10, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, extends, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 4, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, for, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 5, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 6, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, tag, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 7, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, var, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 8, [9 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(9, _, _, _, __T, _, _) ->
|
|
|
+ yeccerror(__T);
|
|
|
+yeccpars2(10, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ __NewStack = yeccpars2_10_(__Stack),
|
|
|
+ __Nss = lists:nthtail(2, __Ss),
|
|
|
+ yeccpars2(yeccgoto('Element', hd(__Nss)), __Cat, __Nss, __NewStack, __T, __Ts, __Tzr);
|
|
|
+yeccpars2(11, block, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 3, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, endblock, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 12, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, extends, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 4, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, for, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 5, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, string, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 6, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, tag, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 7, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, var, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ yeccpars1(__Ts, __Tzr, 8, [11 | __Ss], [__T | __Stack]);
|
|
|
+yeccpars2(11, _, _, _, __T, _, _) ->
|
|
|
yeccerror(__T);
|
|
|
-yeccpars2(9, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
- __NewStack = yeccpars2_9_(__Stack),
|
|
|
+yeccpars2(12, __Cat, __Ss, __Stack, __T, __Ts, __Tzr) ->
|
|
|
+ __NewStack = yeccpars2_12_(__Stack),
|
|
|
__Nss = lists:nthtail(2, __Ss),
|
|
|
yeccpars2(yeccgoto('Element', hd(__Nss)), __Cat, __Nss, __NewStack, __T, __Ts, __Tzr);
|
|
|
yeccpars2(__Other, _, _, _, _, _, _) ->
|
|
@@ -163,56 +193,74 @@ yeccpars2(__Other, _, _, _, _, _, _) ->
|
|
|
|
|
|
yeccgoto('Element', 1) ->
|
|
|
2;
|
|
|
-yeccgoto('Element', 8) ->
|
|
|
+yeccgoto('Element', 9) ->
|
|
|
+ 2;
|
|
|
+yeccgoto('Element', 11) ->
|
|
|
2;
|
|
|
yeccgoto('Elements', 0) ->
|
|
|
1;
|
|
|
yeccgoto('Elements', 3) ->
|
|
|
- 8;
|
|
|
+ 11;
|
|
|
+yeccgoto('Elements', 5) ->
|
|
|
+ 9;
|
|
|
yeccgoto(__Symbol, __State) ->
|
|
|
erlang:error({yecc_bug,"1.1",{__Symbol, __State, missing_in_goto_table}}).
|
|
|
|
|
|
-compile({inline,{yeccpars2_0_,1}}).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 52).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 54).
|
|
|
yeccpars2_0_(__Stack) ->
|
|
|
[begin
|
|
|
nil
|
|
|
end | __Stack].
|
|
|
|
|
|
-compile({inline,{yeccpars2_2_,1}}).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 53).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 55).
|
|
|
yeccpars2_2_([__2,__1 | __Stack]) ->
|
|
|
[begin
|
|
|
[ __1 , __2 ]
|
|
|
end | __Stack].
|
|
|
|
|
|
-compile({inline,{yeccpars2_3_,1}}).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 52).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 54).
|
|
|
yeccpars2_3_(__Stack) ->
|
|
|
[begin
|
|
|
nil
|
|
|
end | __Stack].
|
|
|
|
|
|
-compile({inline,{yeccpars2_4_,1}}).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 57).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 59).
|
|
|
yeccpars2_4_([__1 | __Stack]) ->
|
|
|
[begin
|
|
|
extends ( __1 )
|
|
|
end | __Stack].
|
|
|
|
|
|
--compile({inline,{yeccpars2_6_,1}}).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 59).
|
|
|
-yeccpars2_6_([__1 | __Stack]) ->
|
|
|
+-compile({inline,{yeccpars2_5_,1}}).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 54).
|
|
|
+yeccpars2_5_(__Stack) ->
|
|
|
+ [begin
|
|
|
+ nil
|
|
|
+ end | __Stack].
|
|
|
+
|
|
|
+-compile({inline,{yeccpars2_7_,1}}).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 61).
|
|
|
+yeccpars2_7_([__1 | __Stack]) ->
|
|
|
[begin
|
|
|
tag ( __1 )
|
|
|
end | __Stack].
|
|
|
|
|
|
--compile({inline,{yeccpars2_9_,1}}).
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 58).
|
|
|
-yeccpars2_9_([__3,__2,__1 | __Stack]) ->
|
|
|
+-compile({inline,{yeccpars2_10_,1}}).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 62).
|
|
|
+yeccpars2_10_([__3,__2,__1 | __Stack]) ->
|
|
|
+ [begin
|
|
|
+ for ( __1 , __2 )
|
|
|
+ end | __Stack].
|
|
|
+
|
|
|
+-compile({inline,{yeccpars2_12_,1}}).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 60).
|
|
|
+yeccpars2_12_([__3,__2,__1 | __Stack]) ->
|
|
|
[begin
|
|
|
block ( __1 , __2 )
|
|
|
end | __Stack].
|
|
|
|
|
|
|
|
|
--file("src/erlydtl/erlydtl_parser.yrl", 75).
|
|
|
+-file("src/erlydtl/erlydtl_parser.yrl", 81).
|