/src/tools/semantics/code/instructions/liberty_assignment_attempt.e
Specman e | 46 lines | 27 code | 5 blank | 14 comment | 1 complexity | 9b3ae1124bea23f9138d33d23b054d40 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_ASSIGNMENT_ATTEMPT 16 17inherit 18 LIBERTY_ASSIGNMENT 19 20create {LIBERTY_BUILDER_TOOLS, LIBERTY_ASSIGNMENT_ATTEMPT} 21 make 22 23feature {ANY} 24 accept (v: VISITOR) is 25 local 26 v0: LIBERTY_ASSIGNMENT_ATTEMPT_VISITOR 27 do 28 v0 ::= v 29 v0.visit_liberty_assignment_attempt(Current) 30 end 31 32 specialized_in (a_type: LIBERTY_ACTUAL_TYPE): like Current is 33 local 34 w: like writable 35 e: like expression 36 do 37 w := writable.specialized_in(a_type) 38 e := expression.specialized_in(a_type) 39 if w = writable and then e = expression then 40 Result := Current 41 else 42 create Result.make(w, e, position) 43 end 44 end 45 46end