01: /*
02: * $Id: BinaryParent.java,v 1.4 2002/09/16 08:05:04 jkl Exp $
03: *
04: * Copyright (c) 2002 Njet Communications Ltd. All Rights Reserved.
05: *
06: * Use is subject to license terms, as defined in
07: * Anvil Sofware License, Version 1.1. See LICENSE
08: * file, or http://njet.org/license-1.1.txt
09: */
10: package anvil.script.expression;
11:
12: import anvil.script.compiler.ByteCompiler;
13:
14: /**
15: * class BinaryParent
16: *
17: * @author: Jani Lehtimäki
18: */
19: public abstract class BinaryParent extends Parent {
20: protected Node _left;
21: protected Node _right;
22:
23: public BinaryParent() {
24: super ();
25: _left = null;
26: _right = null;
27: }
28:
29: public BinaryParent(Node left, Node right) {
30: _left = left;
31: _right = right;
32: }
33:
34: public final int childs() {
35: return 2;
36: }
37:
38: public final Node getChild(int i) {
39: if (i == 0) {
40: return _left;
41: } else if (i == 1) {
42: return _right;
43: } else {
44: return null;
45: }
46: }
47:
48: public final void setChild(int i, Node child) {
49: if (i == 0) {
50: _left = child;
51: } else if (i == 1) {
52: _right = child;
53: }
54:
55: }
56:
57: public final Node getLeft() {
58: return _left;
59: }
60:
61: public final Node getRight() {
62: return _right;
63: }
64:
65: public void compile(ByteCompiler context, int operation) {
66: _left.compile(context, operation);
67: _right.compile(context, operation);
68: }
69:
70: }
|