com.ssv.test.airbase.contest
Class ContestParser

java.lang.Object
  extended by com.ssv.utils.parser.Parser
      extended by com.ssv.test.airbase.contest.ContestParser

public class ContestParser
extends Parser

Класс, имплементирующий синтаксический разбор языка CT

Синтаксис

Данное описание синтаксиса неполно, пропущены описания констант. Их можно найти здесь: com.ssv.test.airbase.contest.types

программа ::= оператор
оператор ::= оператор_присваивания | вызов_функции | оператор_if | оператор_while | оператор_for | операторный_блок | оператор_goto | метка
оператор_присваивания ::= переменная '=' выражение
вызов_функции ::= имя '(' список_выражений ')'
оператор_if ::= 'if' '(' выражение ')' оператор [ 'else' оператор ]
оператор_while ::= 'while' '(' выражение ')' оператор
оператор_for ::= 'for' '(' [выражение] ';' [выражение] ';' [выражение] ')' оператор
операторный_блок ::= '{' [ выражение ( ';' выражение )] '}'
оператор_goto ::= 'goto' имя
метка ::= ':' имя ':'

Author:
Sergey Siryk

Nested Class Summary
 
Nested classes/interfaces inherited from class com.ssv.utils.parser.Parser
Parser.ParserContext, Parser.Token
 
Field Summary
static int ASSIGN
          Оператор присваивания, =
static int COLON
          Двоеточие, ':'
static int COMMA
          Символ запятой
static int DIV
           
static int ELSE
          Ключевое слово else
static int EQ
          Знак равенства, ==
static int FOR
          Ключевое слово for
static int GE
          Оператор "больше или равно", >=
static int GOTO
          Ключевое слово goto
static int GT
          Знак больше, >
static int IF
          Ключевое слово if
static int LAND
          Оператор "логическое и", &&
static int LBLOCK
          Левая операторная скобка, '{'
static int LBR
          Левая скобка, (
static int LE
          Оператор "меньше или равно", <=
static int LIBR
          Левая квадратная скобка, '['
static int LNOT
          Оператор "логическое НЕ", !
static int LOR
          Оператор "логическое или", ||
static int LT
          Знак меньше, <
static int MINUS
          Минус, -
static int MUL
          Знак умножения, *
static int NEQ
          Оператор "не равно", !=
static int PLUS
          Плюс, +
static int POWER
          Оператор возведения в степень, ^
static int RBLOCK
          Правая операторная скобка, '}'
static int RBR
          Правая скобка, )
static int RIBR
          Правая квадратная скобка, ']'
static int SEMICOLON
          Точка с запятой, ';'
static int WHILE
          Ключевое слово while
 
Fields inherited from class com.ssv.utils.parser.Parser
DOUBLENUMBER, DOUBLEQUOTEDSTRING, EOF, IDENTIFIER, NONNUMBER, NUMBER, SINGLEQUOTEDSTRING
 
Constructor Summary
ContestParser()
           
 
Method Summary
 Expression acceptLValue(boolean acceptFunctionInvocation)
           
static void main(java.lang.String[] args)
           
 Expression parseExpression()
           
 
Methods inherited from class com.ssv.utils.parser.Parser
accept, accepted, ctoken, fetchContext, getDoubleNumber, getIdentifier, getNumber, getString, init, next, setCommentHandler, stoken, stokenshort, token
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

LBR

public static final int LBR
Левая скобка, (

See Also:
Constant Field Values

RBR

public static final int RBR
Правая скобка, )

See Also:
Constant Field Values

PLUS

public static final int PLUS
Плюс, +

See Also:
Constant Field Values

MINUS

public static final int MINUS
Минус, -

See Also:
Constant Field Values

DIV

public static final int DIV
See Also:
Constant Field Values

MUL

public static final int MUL
Знак умножения, *

See Also:
Constant Field Values

EQ

public static final int EQ
Знак равенства, ==

See Also:
Constant Field Values

GT

public static final int GT
Знак больше, >

See Also:
Constant Field Values

LT

public static final int LT
Знак меньше, <

See Also:
Constant Field Values

ASSIGN

public static final int ASSIGN
Оператор присваивания, =

See Also:
Constant Field Values

POWER

public static final int POWER
Оператор возведения в степень, ^

See Also:
Constant Field Values

LBLOCK

public static final int LBLOCK
Левая операторная скобка, '{'

See Also:
Constant Field Values

RBLOCK

public static final int RBLOCK
Правая операторная скобка, '}'

See Also:
Constant Field Values

SEMICOLON

public static final int SEMICOLON
Точка с запятой, ';'

See Also:
Constant Field Values

COLON

public static final int COLON
Двоеточие, ':'

See Also:
Constant Field Values

IF

public static final int IF
Ключевое слово if

See Also:
Constant Field Values

WHILE

public static final int WHILE
Ключевое слово while

See Also:
Constant Field Values

GOTO

public static final int GOTO
Ключевое слово goto

See Also:
Constant Field Values

COMMA

public static final int COMMA
Символ запятой

See Also:
Constant Field Values

LIBR

public static final int LIBR
Левая квадратная скобка, '['

See Also:
Constant Field Values

RIBR

public static final int RIBR
Правая квадратная скобка, ']'

See Also:
Constant Field Values

LAND

public static final int LAND
Оператор "логическое и", &&

See Also:
Constant Field Values

LOR

public static final int LOR
Оператор "логическое или", ||

See Also:
Constant Field Values

LNOT

public static final int LNOT
Оператор "логическое НЕ", !

See Also:
Constant Field Values

ELSE

public static final int ELSE
Ключевое слово else

See Also:
Constant Field Values

FOR

public static final int FOR
Ключевое слово for

See Also:
Constant Field Values

NEQ

public static final int NEQ
Оператор "не равно", !=

See Also:
Constant Field Values

GE

public static final int GE
Оператор "больше или равно", >=

See Also:
Constant Field Values

LE

public static final int LE
Оператор "меньше или равно", <=

See Also:
Constant Field Values
Constructor Detail

ContestParser

public ContestParser()
              throws java.io.IOException,
                     ParserException
Throws:
java.io.IOException
ParserException
Method Detail

parseExpression

public Expression parseExpression()
                           throws ParserException,
                                  java.io.IOException
Throws:
ParserException
java.io.IOException

acceptLValue

public Expression acceptLValue(boolean acceptFunctionInvocation)
                        throws java.io.IOException,
                               ParserException
Throws:
java.io.IOException
ParserException

main

public static void main(java.lang.String[] args)