annotate include_in_template_chunks.patch @ 27:7f879b938ead

Added Patch #include
author lionel auroux <lionel.auroux@gmail.com>
date Sat, 07 Jan 2012 20:46:46 +0100
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
27
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
1 # HG changeset patch
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
2 # Parent 33bf887e240c8c5aa843193ac5ec24663dc7eb8b
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
3 Add #include in template chunks
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
4
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
5 diff --git a/rathaxes/compiler/rtxParse/rtx.cwp b/rathaxes/compiler/rtxParse/rtx.cwp
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
6 --- a/rathaxes/compiler/rtxParse/rtx.cwp
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
7 +++ b/rathaxes/compiler/rtxParse/rtx.cwp
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
8 @@ -1,11 +1,22 @@
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
9 #include "cnorm.cwp"
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
10
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
11 +#ignore["rathaxes"] ::=
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
12 +[
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
13 + ["//" ->[['\r']? '\n']]
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
14 + | ["/*" ->"*/"]
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
15 + | ' '
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
16 + | '\t'
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
17 + | '\n'
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
18 + | '\r'
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
19 + | '\f' // form feed, sometimes Windows kernel headers have this character.
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
20 +]+:skip
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
21 +;
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
22 /* root of grammar */
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
23 #overload
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
24 translation_unit ::=
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
25 => traceLine("PARSE!");
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
26 #try
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
27 - #ignore
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
28 + #ignore("rathaxes")
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
29 #check(cnormNodeRoot(this))
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
30 [
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
31 rtx_declaration(this)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
32 diff --git a/rathaxes/compiler/rtxParse/rtxBack.cwp b/rathaxes/compiler/rtxParse/rtxBack.cwp
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
33 --- a/rathaxes/compiler/rtxParse/rtxBack.cwp
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
34 +++ b/rathaxes/compiler/rtxParse/rtxBack.cwp
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
35 @@ -189,7 +189,32 @@
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
36 /* The two following lines prevent artefacts (by failing previous alternative) */
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
37 =>clearVariable(theBody);
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
38 #check(cnormNodeBlock(theBody))
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
39 - compound_statement(theBody)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
40 + rtx_chunk_compound_statement(theBody)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
41 +;
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
42 +
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
43 +rtx_chunk_compound_statement(theBlock : node) ::=
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
44 +'{'
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
45 +/**/ #check(cnormNodeBlock(theBlock, true))
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
46 + rtx_chunk_block_item_list(theBlock)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
47 +'}'
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
48 +;
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
49 +
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
50 +rtx_chunk_block_item_list(theBlock : node) ::=
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
51 +[
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
52 + line_of_code(theBlock)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
53 + | '#'
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
54 + [// TODO: Add Define with chunks variables detections/substitutions
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
55 + "include"
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
56 + [
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
57 + ['"' -> '"' | '<' -> '>' ]:sFile
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
58 + ]
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
59 +/**/ #pushItem(theBlock.block)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
60 +/**/ => local lastNode;
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
61 +/**/ #check(cnormNodeBlock_GetLastNode(theBlock, lastNode))
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
62 +/**/ => local sData = "\n#include " + sFile + " \n";
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
63 +/**/ => cnormNode_Raw(lastNode, sData);
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
64 + ]
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
65 +]*
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
66 ;
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
67
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
68 rtx_stmt<"chunk">(theBlock : node) ::=
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
69 diff --git a/rathaxes/compiler/rtxTpl/rtxIntrospect.inc.cws b/rathaxes/compiler/rtxTpl/rtxIntrospect.inc.cws
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
70 --- a/rathaxes/compiler/rtxTpl/rtxIntrospect.inc.cws
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
71 +++ b/rathaxes/compiler/rtxTpl/rtxIntrospect.inc.cws
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
72 @@ -469,6 +469,10 @@
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
73 * Expression type code introspection function
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
74 *
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
75 */
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
76 +function rtxIntrospect_expr<"__raw__">(local_node : node, theChunk : node, blockIds : node)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
77 +{/*nothing to do*/
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
78 +}
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
79 +
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
80 function rtxIntrospect_expr<"__terminal__">(local_node : node, theChunk : node,
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
81 blockIds : node)
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
82 {
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
83 diff --git a/rathaxes/samples/helloworld/main.blt b/rathaxes/samples/helloworld/main.blt
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
84 --- a/rathaxes/samples/helloworld/main.blt
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
85 +++ b/rathaxes/samples/helloworld/main.blt
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
86 @@ -44,7 +44,6 @@
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
87 {
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
88 chunk Main::include_headers
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
89 {
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
90 - /* Won't be printed because # is not supported yet */
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
91 #include <stdlib.h>
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
92 typedef int stdlib_include_stamp;
7f879b938ead Added Patch #include
lionel auroux <lionel.auroux@gmail.com>
parents:
diff changeset
93 }