/src/tools/syntax/tree/liberty_ast_e9.e
Specman e | 55 lines | 33 code | 8 blank | 14 comment | 1 complexity | 0932c425f84d098976cb5616cd8baa13 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_E9 16 17inherit 18 LIBERTY_AST_NON_TERMINAL_NODE 19 20create {LIBERTY_NODE_FACTORY} 21 make 22 23feature {LIBERTY_AST_HANDLER} 24 has_old: BOOLEAN is 25 do 26 Result := count = 2 27 check 28 Result = nodes.first.name.is_equal(once "KW old") 29 end 30 end 31 32 e10: LIBERTY_AST_E10 is 33 do 34 if has_old then 35 Result ::= nodes.item(1) 36 else 37 Result ::= nodes.item(0) 38 end 39 end 40 41feature {ANY} 42 count: INTEGER is 43 do 44 Result := nodes.count 45 end 46 47 name: STRING is "e9" 48 49feature {} 50 possible_counts: SET[INTEGER] is 51 once 52 Result := {AVL_SET[INTEGER] << 1, 2 >> } 53 end 54 55end