blob: 06a581cffa58e096a92c81ac24c7e37233196748 [file] [log] [blame]
ohair6c320662012-03-04 11:55:34 -08001/*
2 * reserved comment block
3 * DO NOT REMOVE OR ALTER!
4 */
5/*
6 * Copyright 2001-2004 The Apache Software Foundation.
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20/*
21 * $Id: IntExpr.java,v 1.2.4.1 2005/09/01 15:46:32 pvedula Exp $
22 */
23
24package com.sun.org.apache.xalan.internal.xsltc.compiler;
25
26import com.sun.org.apache.bcel.internal.generic.ConstantPoolGen;
27import com.sun.org.apache.bcel.internal.generic.InstructionList;
28import com.sun.org.apache.bcel.internal.generic.PUSH;
29import com.sun.org.apache.xalan.internal.xsltc.compiler.util.ClassGenerator;
30import com.sun.org.apache.xalan.internal.xsltc.compiler.util.MethodGenerator;
31import com.sun.org.apache.xalan.internal.xsltc.compiler.util.Type;
32import com.sun.org.apache.xalan.internal.xsltc.compiler.util.TypeCheckError;
33
34/**
35 * @author Jacek Ambroziak
36 * @author Santiago Pericas-Geertsen
37 */
38final class IntExpr extends Expression {
39 private final int _value;
40
41 public IntExpr(int value) {
42 _value = value;
43 }
44
45 public Type typeCheck(SymbolTable stable) throws TypeCheckError {
46 return _type = Type.Int;
47 }
48
49 public String toString() {
50 return "int-expr(" + _value + ')';
51 }
52
53 public void translate(ClassGenerator classGen, MethodGenerator methodGen) {
54 ConstantPoolGen cpg = classGen.getConstantPool();
55 InstructionList il = methodGen.getInstructionList();
56 il.append(new PUSH(cpg, _value));
57 }
58}