Вы находитесь на странице: 1из 6

A

Prog

FIRST(A)
KW_PROGRAM

Block

KW_CONST,KW_TYPE,KW_VAR,KW_FUNCTION,
KW_PROCEDURE,e

Block2
Block3
Block4
Block5

KW_TYPE,KW_VAR,KW_FUNCTION,
KW_PROCEDURE,e
KW_VAR,KW_FUNCTION,KW_PROCEDURE,e
KW_FUNCTION,KW_PROCEDURE,e
KW_BEGIN

ConstDecls

TK_IDENT,e

ConstDecl
TypeDecls

TK_IDENT
TK_IDENT,e

TypeDecl
VarDecls
VarDecl
SubDecls
FunDecl
ProDecl

TK_IDENT
TK_IDENT,e
TK_IDENT
KW_FUNCTION,KW_PROCEDURE,e
KW_FUNCTION
KW_PROCEDURE

Params
Params2
Param
Type
BasicType
UnsignedConstant

SB_LPAR,e
SB_SEMICOLON,e
TK_IDENT,KW_VAR
KW_INTEGER,KW_CHAR,TK_IDENT,KW_ARRAY
KW_INTEGER,KW_CHAR
TK_NUMBER,TK_IDENT,TK_CHAR

Constant
Constant2

TK_MINUS,TK_PLUS,TK_CHAR,TK_IDENT,
TK_NUMBER
TK_IDENT,TK_NUMBER

Statements
Statements2

TK_IDENT,TK_CALL,KW_BEGIN,KW_IF,KW_ELSE,
KW_WHILE,KW_FOR,KW_SEMICOLON,e
KW_SEMICOLON,e

Statement

TK_IDENT,TK_CALL,KW_BEGIN,KW_IF,KW_ELSE,
KW_WHILE,KW_FOR,e

AssignSt
CallSt
GroupSt
IfSt
ElseSt
WhileSt

TK_IDENT
KW_CALL
KW_BEGIN
KW_IF
KW_ELSE,e
KW_WHILE

ForSt
Arguments
Arguments2

KW_FOR
SB_LPAR,e
SB_COMA,e

Condition
Condition2

SB_PLUS,SB_MINUS,TK_NUMBER,TK_IDENT,
TK_CHAR,SB_LPAR
SB_EQ,SB_NEQ,SB_LE,SB_LT,SB_GE,SB_GT

Expression

SB_PLUS,SB_MINUS,TK_NUMBER,TK_IDENT,
TK_CHAR,SB_LPAR

Expression2

TK_NUMBER,TK_IDENT,TK_CHAR,TK_IDENT,
SB_LPAR

Expression3

SB_MINUS,SB_PLUS,e

Term

TK_NUMBER,TK_IDENT,TK_CHAR,TK_IDENT,
SB_LPAR

Term2

SB_TIME,SB_SLASH,e

Factor

TK_NUMBER,TK_IDENT,TK_CHAR,TK_IDENT,
SB_LPAR

Varriable
FunctionApplication

TK_IDENT
TK_IDENT

Indexes

SB_LSEL,e

FOLLOW(A)

SB_PERIOD,SB_SEMICOLON
FOLLOW(Block)
FOLLOW(Block2)
FOLLOW(Block3)
FOLLOW(Block4)

FIRST(Block2)
{FIRST(ConstDecls)-e}+FOLLOW(ConstDecls)
FIRST(Block3)
{FIRST(TypeDecls)-e}+FOLLOW(TypeDecls)
FIRST(Block4)
{FIRST(VarDecls)-e}+FOLLOW(VarDecls)
FIRST(Block5)
{FIRST(SubDecls)-e}+FOLLOW(SubDecls)
{FIRST(SubDecls)-e}+FOLLOW(SubDecls)
SB_COLON,SB_SEMICOLON,
{FIRST(Params2)-e }+FOLLOW(Params2)
SB_RPAR
SB_COLON,SB_SEMICOLON
SB_SEMICOLON
SB_SEMICOLON,FOLLOW(Param)
FOLLOW(Factor)
SB_SEMICOLON
FOLLOW(Constant)
KW_END
FOLLOW(Statements)
{FIRST(Statements2)-e}+FOLLOW(Statements),
{FIRST(Statements2)-e}+FOLLOW(Statements2),
{FIRST(ElseSt)-e}+FOLLOW(IfSt),
FOLLOW(ElseSt),FOLLOW(WhileSt),FOLLOW(ForSt)
FOLLOW(Statement)
FOLLOW(Statement)
FOLLOW(Statement)
FOLLOW(Statement)
FOLLOW(IfSt)
FOLLOW(Statement)

FOLLOW(Statement)
FOLLOW(FunctionApplication),FOLLOW(CallSt)
SB_RLAR
KW_THEN,KW_DO
FOLLOW(Condition)

SB_RPAR,SB_RSEL,FOLLOW(AssignSt),KW_TO,KW_DO
{FIRST(Arguments2)-e}+SB_RLAR+FOLLOW(Arguments2),
FIRST(Condition2),FOLLOW(Condition2)

FOLLOW(Expression)

FOLLOW(Expression2)

{FIRST(Expression3)-e}+FOLLOW(Expression2)
+FOLLOW(Expression3)

FOLLOW(Term)
{FIRST(Term2)-E}+FOLLOW(Term)+FOLLOW(Term2)

FOLLOW(Factor),SB_ASSIGN

FOLLOW(Variable)

FOLLOW(A)

SB_PERIOD,SB_SEMICOLON
SB_PERIOD,SB_SEMICOLON
SB_PERIOD,SB_SEMICOLON
SB_PERIOD,SB_SEMICOLON
SB_PERIOD,SB_SEMICOLON
KW_TYPE,KW_VAR,KW_FUNCTION,KW_PROCEDURE
e
TK_IDENT,KW_TYPE,KW_VAR,KW_FUNCTION,
KW_PROCEDURE,e
KW_VAR,KW_FUNCTION,KW_PROCEDURE,e
TK_IDENT,KW_VAR,KW_FUNCTION,
KW_PROCEDURE,e
KW_FUNCTION,KW_PROCEDURE,e
TK_IDENT,KW_FUNCTION,KW_PROCEDURE,e
KW_BEGIN
KW_FUNCTION,KW_PROCEDURE,KW_BEGIN
KW_FUNCTION,KW_PROCEDURE,KW_BEGIN
SB_COLON,SB_SEMICOLON,SB_RPAR
SB_RPAR
TK_SEMICOLON,SB_RPAR
SB_SEMICOLON
SB_SEMICOLON,SB_RPAR

SB_SEMICOLON
SB_SEMICOLON
KW_END
KW_END
KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END

KW_SEMICOLON,KW_ELSE,KW_END
KW_SEMICOLON,KW_ELSE,KW_END
SB_RLAR
KW_THEN,KW_DO
KW_THEN,KW_DO
SB_RPAR,SB_RSEL,KW_SEMICOLON,KW_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO

SB_RPAR,SB_RSEL,KW_SEMICOLON,KW_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO
SB_RPAR,SB_RSEL,KW_SEMICOLON,KW_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO
SB_MINUS,SB_PLUS,SB_RPAR,SB_RSEL,KW_SEMICOLON,KW
_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO
SB_MINUS,SB_PLUS,SB_RPAR,SB_RSEL,KW_SEMICOLON,KW
_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO
SB_TIME,SB_SLASH,SB_MINUS,SB_PLUS,SB_RPAR,SB_RSEL,
KW_SEMICOLON,KW_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO
SB_TIME,SB_SLASH,SB_MINUS,SB_PLUS,SB_RPAR,SB_RSEL,
KW_SEMICOLON,KW_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO,SB_ASSIGN
SB_TIME,SB_SLASH,SB_MINUS,SB_PLUS,SB_RPAR,SB_RSEL,
KW_SEMICOLON,KW_TO,KW_DO,
SB_COMA,SB_RLAR,SB_EQ,SB_NEQ,SB_LE,SB_LT,
SB_GE,SB_GT,KW_THEN,KW_DO,SB_ASSIGN

Вам также может понравиться