1*0c56280aSSorin Basca /* 2*0c56280aSSorin Basca * Licensed to the Apache Software Foundation (ASF) under one or more 3*0c56280aSSorin Basca * contributor license agreements. See the NOTICE file distributed with 4*0c56280aSSorin Basca * this work for additional information regarding copyright ownership. 5*0c56280aSSorin Basca * The ASF licenses this file to You under the Apache License, Version 2.0 6*0c56280aSSorin Basca * (the "License"); you may not use this file except in compliance with 7*0c56280aSSorin Basca * the License. You may obtain a copy of the License at 8*0c56280aSSorin Basca * 9*0c56280aSSorin Basca * http://www.apache.org/licenses/LICENSE-2.0 10*0c56280aSSorin Basca * 11*0c56280aSSorin Basca * Unless required by applicable law or agreed to in writing, software 12*0c56280aSSorin Basca * distributed under the License is distributed on an "AS IS" BASIS, 13*0c56280aSSorin Basca * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14*0c56280aSSorin Basca * See the License for the specific language governing permissions and 15*0c56280aSSorin Basca * limitations under the License. 16*0c56280aSSorin Basca * 17*0c56280aSSorin Basca */ 18*0c56280aSSorin Basca /* Generated By:JJTree: Do not edit this line. ASTInteger.java */ 19*0c56280aSSorin Basca /* JJT: 0.3pre1 */ 20*0c56280aSSorin Basca 21*0c56280aSSorin Basca package Mini; 22*0c56280aSSorin Basca import org.apache.bcel.generic.ConstantPoolGen; 23*0c56280aSSorin Basca import org.apache.bcel.generic.InstructionList; 24*0c56280aSSorin Basca import org.apache.bcel.generic.MethodGen; 25*0c56280aSSorin Basca import org.apache.bcel.generic.PUSH; 26*0c56280aSSorin Basca 27*0c56280aSSorin Basca /** 28*0c56280aSSorin Basca * 29*0c56280aSSorin Basca * @version $Id$ 30*0c56280aSSorin Basca */ 31*0c56280aSSorin Basca public class ASTInteger extends ASTExpr { 32*0c56280aSSorin Basca private int value; 33*0c56280aSSorin Basca 34*0c56280aSSorin Basca // Generated methods ASTInteger(int id)35*0c56280aSSorin Basca ASTInteger(int id) { 36*0c56280aSSorin Basca super(id); 37*0c56280aSSorin Basca } 38*0c56280aSSorin Basca ASTInteger(MiniParser p, int id)39*0c56280aSSorin Basca ASTInteger(MiniParser p, int id) { 40*0c56280aSSorin Basca super(p, id); 41*0c56280aSSorin Basca } 42*0c56280aSSorin Basca jjtCreate(MiniParser p, int id)43*0c56280aSSorin Basca public static Node jjtCreate(MiniParser p, int id) { 44*0c56280aSSorin Basca return new ASTInteger(p, id); 45*0c56280aSSorin Basca } 46*0c56280aSSorin Basca 47*0c56280aSSorin Basca // closeNode, dump inherited from Expr 48*0c56280aSSorin Basca 49*0c56280aSSorin Basca /** 50*0c56280aSSorin Basca * @return identifier and line/column number of appearance 51*0c56280aSSorin Basca */ 52*0c56280aSSorin Basca @Override toString()53*0c56280aSSorin Basca public String toString() { 54*0c56280aSSorin Basca return super.toString() + " = " + value; 55*0c56280aSSorin Basca } 56*0c56280aSSorin Basca 57*0c56280aSSorin Basca /** 58*0c56280aSSorin Basca * Overrides ASTExpr.traverse() 59*0c56280aSSorin Basca */ 60*0c56280aSSorin Basca @Override traverse(Environment env)61*0c56280aSSorin Basca public ASTExpr traverse(Environment env) { 62*0c56280aSSorin Basca this.env = env; 63*0c56280aSSorin Basca return this; // Nothing to reduce/traverse here 64*0c56280aSSorin Basca } 65*0c56280aSSorin Basca 66*0c56280aSSorin Basca /** 67*0c56280aSSorin Basca * Second pass 68*0c56280aSSorin Basca * Overrides AstExpr.eval() 69*0c56280aSSorin Basca * @return type of expression 70*0c56280aSSorin Basca */ 71*0c56280aSSorin Basca @Override eval(int expected)72*0c56280aSSorin Basca public int eval(int expected) { 73*0c56280aSSorin Basca is_simple = true; // (Very) simple expression, always true 74*0c56280aSSorin Basca 75*0c56280aSSorin Basca return type = T_INT; 76*0c56280aSSorin Basca } 77*0c56280aSSorin Basca 78*0c56280aSSorin Basca /** 79*0c56280aSSorin Basca * Fourth pass, produce Java code. 80*0c56280aSSorin Basca */ 81*0c56280aSSorin Basca @Override code(StringBuffer buf)82*0c56280aSSorin Basca public void code(StringBuffer buf) { 83*0c56280aSSorin Basca ASTFunDecl.push(buf, "" + value); 84*0c56280aSSorin Basca } 85*0c56280aSSorin Basca 86*0c56280aSSorin Basca /** 87*0c56280aSSorin Basca * Fifth pass, produce Java byte code. 88*0c56280aSSorin Basca */ 89*0c56280aSSorin Basca @Override byte_code(InstructionList il, MethodGen method, ConstantPoolGen cp)90*0c56280aSSorin Basca public void byte_code(InstructionList il, MethodGen method, ConstantPoolGen cp) { 91*0c56280aSSorin Basca il.append(new PUSH(cp, value)); ASTFunDecl.push(); 92*0c56280aSSorin Basca } 93*0c56280aSSorin Basca setValue(int value)94*0c56280aSSorin Basca void setValue(int value) { this.value = value; } getValue()95*0c56280aSSorin Basca int getValue() { return value; } 96*0c56280aSSorin Basca } 97