parser: move things from parser_prod to parser_nodes
[nit.git] / src / parser / xss / nodes.xss
diff --git a/src/parser/xss/nodes.xss b/src/parser/xss/nodes.xss
deleted file mode 100644 (file)
index a07d4ef..0000000
+++ /dev/null
@@ -1,102 +0,0 @@
-$ // This file is part of NIT ( http://www.nitlanguage.org ).
-$ //
-$ // Copyright 2008 Jean Privat <jean@pryen.org>
-$ // Based on algorithms developped for ( http://www.sablecc.org/ ).
-$ //
-$ // Licensed under the Apache License, Version 2.0 (the "License");
-$ // you may not use this file except in compliance with the License.
-$ // You may obtain a copy of the License at
-$ //
-$ //     http://www.apache.org/licenses/LICENSE-2.0
-$ //
-$ // Unless required by applicable law or agreed to in writing, software
-$ // distributed under the License is distributed on an "AS IS" BASIS,
-$ // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-$ // See the License for the specific language governing permissions and
-$ // limitations under the License.
-
-$ template make_abs_nodes()
-# Root of the AST hierarchy
-abstract class PNode
-       var _location: nullable Location
-
-       # Location is set during AST building. Once built, location cannon be null
-       # However, manual instanciated nodes may need mode care
-       fun location: Location do return _location.as(not null)
-end
-
-# Ancestor of all tokens
-abstract class Token
-       super PNode
-end
-
-# Ancestor of all productions
-abstract class Prod
-       super PNode
-       fun location=(loc: Location) do _location = loc
-end
-$ end template
-
-$ template make_nodes()
-redef class PNode
-       # Parent of the node in the AST
-       readable writable var _parent: nullable PNode
-
-       # Remove a child from the AST
-       fun remove_child(child: PNode)
-       do
-               replace_child(child, null)
-       end
-
-       # Replace a child with an other node in the AST
-       fun replace_child(old_child: PNode, new_child: nullable PNode) is abstract
-
-       # Replace itself with an other node in the AST
-       fun replace_with(node: PNode)
-       do
-               if _parent != null then
-                       _parent.replace_child(self, node)
-               end
-       end
-
-       # Visit all nodes in order.
-       # Thus, call "v.visit(e)" for each node e
-       fun visit_all(v: Visitor) is abstract
-end
-
-redef class Token
-       redef fun visit_all(v: Visitor) do end
-       redef fun replace_child(old_child: PNode, new_child: nullable PNode) do end
-end
-
-redef class Prod
-       redef fun replace_with(n: PNode)
-        do
-                super
-                assert n isa Prod
-                n.location = location
-        end
-end
-
-# Abstract standard visitor
-abstract class Visitor
-       # What the visitor do when a node is visited
-        # Concrete visitors should redefine this method.
-        protected fun visit(e: nullable PNode) is abstract
-
-        # Ask the visitor to visit a given node.
-        # Usually automatically called by visit_all* methods.
-       # This methos should not be redefined
-        fun enter_visit(e: nullable PNode)
-       do
-               var old = _current_node
-               _current_node = e
-               visit(e)
-               _current_node = old
-       end
-
-       # The current visited node
-       readable var _current_node: nullable PNode = null
-end
-
-$ end template