/src/tools/syntax/tree/liberty_ast_expression_remainder.e
Specman e | 47 lines | 27 code | 6 blank | 14 comment | 0 complexity | f8e57c0d53b6976421a05148c0fe07a6 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-- 15deferred class LIBERTY_AST_EXPRESSION_REMAINDER[E_ -> LIBERTY_AST_NON_TERMINAL_NODE] 16 17inherit 18 LIBERTY_AST_NON_TERMINAL_NODE 19 20feature {LIBERTY_AST_HANDLER} 21 expression: E_ is 22 require 23 not is_empty 24 do 25 Result ::= nodes.item(nodes.upper-1) 26 end 27 28 remainder: like Current is 29 require 30 not is_empty 31 do 32 Result ::= nodes.last 33 end 34 35feature {ANY} 36 count: INTEGER is 37 do 38 Result := nodes.count 39 end 40 41feature {} 42 possible_counts: SET[INTEGER] is 43 once 44 Result := {AVL_SET[INTEGER] << 0, 3 >> } 45 end 46 47end