/src/tools/syntax/tree/liberty_ast_feature_definition.e
Specman e | 77 lines | 50 code | 13 blank | 14 comment | 0 complexity | 821ba939532d8034febcafcbd046289c 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_FEATURE_DEFINITION 16 17inherit 18 LIBERTY_AST_NON_TERMINAL_NODE 19 20create {LIBERTY_NODE_FACTORY} 21 make 22 23feature {LIBERTY_AST_HANDLER} 24 indexing_clause: LIBERTY_AST_INDEXING is 25 do 26 Result ::= nodes.item(0) 27 end 28 29 signature: LIBERTY_AST_SIGNATURE is 30 do 31 Result ::= nodes.item(1) 32 end 33 34 has_routine_definition: BOOLEAN is 35 do 36 Result := count = 4 and then nodes.item(3).name.is_equal(once "Routine_Definition") 37 end 38 39 is_constant: BOOLEAN is 40 do 41 Result := count = 4 and then nodes.item(3).name.is_equal(once "Manifest_Or_Type_Test") 42 end 43 44 is_unique: BOOLEAN is 45 do 46 Result := count = 4 and then nodes.item(3).name.is_equal(once "KW unique") 47 end 48 49 routine_definition: LIBERTY_AST_ROUTINE_DEFINITION is 50 require 51 has_routine_definition 52 do 53 Result ::= nodes.item(3) 54 end 55 56 constant: LIBERTY_AST_MANIFEST_OR_TYPE_TEST is 57 require 58 is_constant 59 do 60 Result ::= nodes.item(3) 61 end 62 63feature {ANY} 64 count: INTEGER is 65 do 66 Result := nodes.count 67 end 68 69 name: STRING is "Feature_Definition" 70 71feature {} 72 possible_counts: SET[INTEGER] is 73 once 74 Result := {AVL_SET[INTEGER] << 2, 4 >> } 75 end 76 77end