1/*
2 * Javassist, a Java-bytecode translator toolkit.
3 * Copyright (C) 1999-2007 Shigeru Chiba. All Rights Reserved.
4 *
5 * The contents of this file are subject to the Mozilla Public License Version
6 * 1.1 (the "License"); you may not use this file except in compliance with
7 * the License.  Alternatively, the contents of this file may be used under
8 * the terms of the GNU Lesser General Public License Version 2.1 or later.
9 *
10 * Software distributed under the License is distributed on an "AS IS" basis,
11 * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
12 * for the specific language governing rights and limitations under the
13 * License.
14 */
15
16package javassist.compiler.ast;
17
18import javassist.compiler.TokenId;
19import javassist.compiler.CompileError;
20
21/**
22 * Statement.
23 */
24public class Stmnt extends ASTList implements TokenId {
25    protected int operatorId;
26
27    public Stmnt(int op, ASTree _head, ASTList _tail) {
28        super(_head, _tail);
29        operatorId = op;
30    }
31
32    public Stmnt(int op, ASTree _head) {
33        super(_head);
34        operatorId = op;
35    }
36
37    public Stmnt(int op) {
38        this(op, null);
39    }
40
41    public static Stmnt make(int op, ASTree oprand1, ASTree oprand2) {
42        return new Stmnt(op, oprand1, new ASTList(oprand2));
43    }
44
45    public static Stmnt make(int op, ASTree op1, ASTree op2, ASTree op3) {
46        return new Stmnt(op, op1, new ASTList(op2, new ASTList(op3)));
47    }
48
49    public void accept(Visitor v) throws CompileError { v.atStmnt(this); }
50
51    public int getOperator() { return operatorId; }
52
53    protected String getTag() {
54        if (operatorId < 128)
55            return "stmnt:" + (char)operatorId;
56        else
57            return "stmnt:" + operatorId;
58    }
59}
60