a86748180daf76a271b237642d987b65685e2379
[nit.git] / src / parser / xss / main.xss
1 /* This file is part of NIT ( http://www.nitlanguage.org ).
2  *
3  * Copyright 2008 Jean Privat <jean@pryen.org>
4  * Based on algorithms developped for ( http://www.sablecc.org/ ).
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *     http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 $ include 'nodes.xss'
20 $ include 'lexer.xss'
21 $ include 'parser.xss'
22 $ include 'tokens.xss'
23 $ include 'prods.xss'
24
25 $ output 'parser_abs.nit'
26 # Raw AST node hierarchy.
27 # This file was generated by SableCC (http://www.sablecc.org/). 
28 package parser_abs
29
30 import mmloader
31
32 $ call make_abs_nodes()
33 $ call make_abs_tokens()
34 $ call make_abs_prods()
35 $ end output
36
37 $ output 'lexer.nit'
38 # Lexer and its tokens.
39 # This file was generated by SableCC (http://www.sablecc.org/).
40 package lexer
41
42 $ if $usermodule
43 intrude import $usermodule
44 $ else
45 intrude import parser_abs
46 $ end
47 $ call make_tokens()
48 $ call make_lexer()
49 $ end output
50
51 $ output 'parser_prod.nit'
52 # Production AST nodes full definition.
53 # This file was generated by SableCC (http://www.sablecc.org/). 
54 package parser_prod
55
56 import lexer
57 $ if $usermodule
58 intrude import $usermodule
59 $ else
60 intrude import parser_abs
61 $ end
62
63 $ call make_nodes()
64 $ call make_prods()
65 $ end output
66
67 $ output 'parser_tables.nit'
68 # Tables used by the parser.
69 # This file was generated by SableCC (http://www.sablecc.org/). 
70 package parser_tables
71
72 $ call make_parser_tables()
73 $ end output
74
75 $ output 'parser.nit'
76 # Parser.
77 # This file was generated by SableCC (http://www.sablecc.org/). 
78 package parser
79
80 intrude import parser_prod
81 intrude import parser_tables
82 $ call make_parser()
83 $ end output
84