/src/tools/syntax/tree/liberty_ast_parent_clause.e
Specman e | 71 lines | 46 code | 11 blank | 14 comment | 0 complexity | 43f202d2ef637c5b4ec794de5d2c2fbf MD5 | raw file
1-- This file is part of Liberty Eiffel. 2-- 3-- Liberty Eiffel is free software: you can redistribute it and/or modify 4-- it under the terms of the GNU General Public License as published by 5-- the Free Software Foundation, version 3 of the License. 6-- 7-- Liberty Eiffel is distributed in the hope that it will be useful, 8-- but WITHOUT ANY WARRANTY; without even the implied warranty of 9-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 10-- GNU General Public License for more details. 11-- 12-- You should have received a copy of the GNU General Public License 13-- along with Liberty Eiffel. If not, see <http://www.gnu.org/licenses/>. 14-- 15class LIBERTY_AST_PARENT_CLAUSE 16 17inherit 18 LIBERTY_AST_NON_TERMINAL_NODE 19 20create {LIBERTY_NODE_FACTORY} 21 make 22 23feature {LIBERTY_AST_HANDLER} 24 has_clauses: BOOLEAN is 25 do 26 Result := count = 5 27 end 28 29 rename_clause: LIBERTY_AST_PARENT_RENAME is 30 require 31 has_clauses 32 do 33 Result ::= nodes.item(0) 34 end 35 36 export_clause: LIBERTY_AST_PARENT_EXPORT is 37 require 38 has_clauses 39 do 40 Result ::= nodes.item(1) 41 end 42 43 undefine_clause: LIBERTY_AST_PARENT_UNDEFINE is 44 require 45 has_clauses 46 do 47 Result ::= nodes.item(2) 48 end 49 50 redefine_clause: LIBERTY_AST_PARENT_REDEFINE is 51 require 52 has_clauses 53 do 54 Result ::= nodes.item(3) 55 end 56 57feature {ANY} 58 count: INTEGER is 59 do 60 Result := nodes.count 61 end 62 63 name: STRING is "Parent_Clause" 64 65feature {} 66 possible_counts: SET[INTEGER] is 67 once 68 Result := {AVL_SET[INTEGER] << 0, 1, 5 >> } 69 end 70 71end