|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.ssv.test.airbase.contest.Execution
public class Execution
Этот класс представляет "объектный код" "скомпилированной" программы.
Изначально я не собирался делать "кодогенерацию", я просто хотел выполнить
метод Operator.run()
оператора,
представляющего "верхний уровень" программы. Но к сожалению, такой номер не
прошел, поскольку у нас есть оператор goto, который ломает иерархичность
исполнения. Поэтому, после синтаксического разбора и получения набора
операторов, мне пришлось проводить некоторую дополнительную работу.
Я пришел к такой схеме: программа есть последовательность объектов типа Step, размещенных последовательно. "Обычные" операторы после выполнения просто переходят к следующей команде (экземпляру типа Step). Но есть две специальных команды, меняющие порядок исполнения. Эти команды - безусловный переход (Goto) и условный переход (ConditionalGoto). После их исполнения управление переходит не к следующей команде, а к некоторой другой точке в списке.
Nested Class Summary | |
---|---|
static class |
Execution.ConditionalGoto
|
static class |
Execution.Goto
|
Constructor Summary | |
---|---|
Execution(Operator op)
Создать объект Execution, "откомпилировать" оператор, переданный как параметр в последовательность шагов. |
Method Summary | |
---|---|
void |
add(com.ssv.test.airbase.contest.Execution.Step step)
|
void |
add(Operator op)
|
void |
list()
|
void |
run()
Данный метод выполняет последовательность шагов. |
int |
size()
|
Methods inherited from class java.lang.Object |
---|
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
---|
public Execution(Operator op)
op
- Method Detail |
---|
public void list()
public int size()
public void add(com.ssv.test.airbase.contest.Execution.Step step)
public void add(Operator op)
public void run() throws ParserException
ParserException
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |