Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по ТЯП. Вариант 18.doc
Скачиваний:
12
Добавлен:
01.05.2014
Размер:
1.14 Mб
Скачать

Разбиение на подграмматики

ГРАММАТИКА ГЛАВНЫЙ_КЛАСС

MCls → DecPak {ConCls} DecCls {Met } MMet{DecVar}

MCls → DecPak {ConCls} DecCls {Met} MMet{Met}

MCls → DecPak {ConCls} DecCls {DecVar} MMet{DecVar}

MCls → DecPak {ConCls} DecCls {DecVar} MMet{Met}

Грамматика является грамматикой операторного предшествования, так как выполняются условия:

  1. грамматика не содержит ε – правил

  2. в правых частях выводов не содержится правил вида aT1T2b, гдеT1 иT2 – нетерминалы.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 8 * 8 ) :

=====================================

I Idcp!{ !} !dcl!met!mmt!dcv!EpsI

=====================================

IdcpI ! ! ! = ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

I{ I ! ! ! ! = ! ! = ! I

I---I---+---+---+---+---+---+---+---I

I} I ! ! ! ! ! = ! ! I

I---I---+---+---+---+---+---+---+---I

IdclI ! = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

ImetI ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

ImmtI ! ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---+---I

IdcvI ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! ! ! I

=====================================

Входная конструкция

Описание

package

<путь>

import

<путь>.<идентификатор>

Class

<иденитификатор>

<объявление переменных>

<методы>

void

main

(

String<идентификатор>

)

<блок кода>

<объявление переменных>

<методы>

Обращение к подграмматике путь

Обращение к подграмматике путь

ID

Обращение к подграмматике объявление переменной

Обращение к подграмматике метод

ID

Обращение к подграмматике блок кода

Обращение к подграмматике объявление переменной

Обращение к подграмматике метод

ГРАММАТИКА КЛАСС

Cls → DecPak {ConCls } DecCls { Met }

Cls → DecPak {Concls} DecCls {DecVar}

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 8 * 8 ) :

=====================================

I Idcp!{ !} !ccs!dls!met!dvr!EpsI

=====================================

IdcpI ! = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

I{ I ! ! ! = ! ! = ! = ! I

I---I---+---+---+---+---+---+---+---I

I} I ! ! ! ! = ! ! ! > I

I---I---+---+---+---+---+---+---+---I

IccsI ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

IdlsI ! = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

ImetI ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

IdvrI ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! ! ! I

=====================================

Входная конструкция

Описание

package

<путь>

import

<путь>.<идентификатор>

Class

<иденитификатор>

<объявление переменных>

<методы>

Обращение к подграмматике путь

Обращение к подграмматике путь

ID

Обращение к подграмматике объявление переменной

Обращение к подграмматике метод

ГРАММАТИКА ПРОГРАММА

Prog→ MCls {Cls}

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Imcl!{ !} !cls!EpsI

=========================

ImclI ! = ! ! ! I

I---I---+---+---+---+---I

I{ I ! ! ! = ! I

I---I---+---+---+---+---I

I} I ! ! ! ! > I

I---I---+---+---+---+---I

IclsI ! ! = ! ! I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

<главный класс>

{

<класс>

}

Обращение к подграмматикеглавный класс

Обращение к подграмматикекласс

ГРАММАТИКА ОБЪЯВЛЕНИЕ КЛАССА

DecCls → class ID

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 3 * 3 ) :

=================

I Icls!id !EpsI

=================

IclsI ! = ! I

I---I---+---+---I

Iid I ! ! > I

I---I---+---+---I

I ┴ I < ! ! I

=================

Входная конструкция

Описание

class

<иденитификатор>

ID

ГРАММАТИКА ПУТЬ

Adr → СAdr.СAdr

СAdr → VCHAR{VCHAR}

СAdr → VCHAR{NUM}

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Ivch!{ !} !num!. !EpsI

=============================

IvchI ! = ! = ! ! ! I

I---I---+---+---+---+---+---I

I{ I = ! ! ! = ! ! I

I---I---+---+---+---+---+---I

I} I ! ! ! ! > ! > I

I---I---+---+---+---+---+---I

InumI ! ! = ! ! ! I

I---I---+---+---+---+---+---I

I. I < ! ! ! ! ! > I

I---I---+---+---+---+---+---I

I ┴ I < ! ! ! ! < ! I

=============================

Входная конструкция

Описание

Вариант 1

<латинская буква>

<латинская буква>

<цифра>

Вариант 2

<путь>

.

<путь>

VCHAR

VCHAR

NUM

ГРАММАТИКА ПОДКЛЮЧЕНИЕ КЛАССА

ConCls → import Adr . ID

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Iimp!adr!. !id !EpsI

=========================

IimpI ! = ! ! ! I

I---I---+---+---+---+---I

IadrI ! ! = ! ! I

I---I---+---+---+---+---I

I. I ! ! ! = ! I

I---I---+---+---+---+---I

Iid I ! ! ! ! > I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

Import <путь>

.

<идентификатор>

Обращение к подграмматике путь

ID

ГРАММАТИКА ОБЪЯВЛЕНИЕ ПАКЕТА

DecPak → package Adr

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 3 * 3 ) :

=================

I Ipac!adr!EpsI

=================

IpacI ! = ! I

I---I---+---+---I

IadrI ! ! > I

I---I---+---+---I

I ┴ I < ! ! I

=================

Входная конструкция

Описание

package

<путь>

Обращение к подграмматике путь

ГРАММАТИКА СПИСОК ПАРАМЕТРОВ

listValues → Type ID listValues

listValues→ listValues val

listValues → exp

Грамматика не является грамматикой операторного предшествования, так как не выполняются необходимые условия:

1.содержит ε – правила

Входная конструкция

Описание

Type

<идентификатор>

ID

ГРАММАТИКА “NEW”

N → new Type(listValues)

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Inew!typ!( !) !lvl!EpsI

=============================

InewI ! = ! ! ! ! I

I---I---+---+---+---+---+---I

ItypI ! ! = ! ! ! I

I---I---+---+---+---+---+---I

I( I ! ! ! ! = ! I

I---I---+---+---+---+---+---I

I) I ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IlvlI ! ! ! = ! ! I

I---I---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! I

=============================

Входная конструкция

Описание

new

<тип>

(

<тип>

<идентификатор>

}

Type

Type

ID

ГРАММАТИКА ПРОСТАЯ ПЕРЕМЕННАЯ

SVar → ID

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 2 * 2 ) :

=============

I Iid !EpsI

=============

Iid I ! > I

I---I---+---I

I ┴ I < ! I

=============

Входная конструкция

Описание

<идентификатор>

ID

ГРАММАТИКА КОНСТАНТА БЕЗ ЗНАКА

FCon → num

FCon → VCHAR

FCon → Str

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 4 * 4 ) :

=====================

I Inum!vch!str!EpsI

=====================

InumI ! ! ! > I

I---I---+---+---+---I

IvchI ! ! ! > I

I---I---+---+---+---I

IstrI ! ! ! > I

I---I---+---+---+---I

I ┴ I < ! < ! < ! I

=====================

Входная конструкция

Описание

Вариант 1

<число без знака>

Вариант 2

<символьное значение>

Вариант 3

<строка>

NUM

VCHAR

STR

ГРАММАТИКА КОНСТАНТА

Con → num

Con → DOUBLE

Con → Str

Con →VCHAR

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Inum!dub!str!vch!EpsI

=========================

InumI ! ! ! ! > I

I---I---+---+---+---+---I

IdubI ! ! ! ! > I

I---I---+---+---+---+---I

IstrI ! ! ! ! > I

I---I---+---+---+---+---I

IvchI ! ! ! ! > I

I---I---+---+---+---+---I

I ┴ I < ! < ! < ! < ! I

=========================

Входная конструкция

Описание

Вариант 1

<число>

Вариант 2

<символьное значение>

Вариант 3

<строка>

MNUM

VCHAR

STR

ГРАММАТИКА ОПЕРАЦИЯ СКОБКИ

BrOp → (Val)

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 4 * 4 ) :

=====================

I I( !) !val!EpsI

=====================

I( I ! ! = ! I

I---I---+---+---+---I

I) I ! ! ! > I

I---I---+---+---+---I

IvalI ! = ! ! I

I---I---+---+---+---I

I ┴ I < ! ! ! I

=====================

Входная конструкция

Описание

(

<значение>

)

Обращение к подграмматике значение

ГРАММАТИКА ОПЕРАЦИЯ ПРИСВАИВАНИЯ

EqOp → SVar = Val

EqOp → N

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I ISvr!Val!N != !EpsI

=========================

ISvrI ! ! ! = ! I

I---I---+---+---+---+---I

IValI ! ! ! ! > I

I---I---+---+---+---+---I

IN I ! ! ! ! > I

I---I---+---+---+---+---I

I= I ! = ! ! ! I

I---I---+---+---+---+---I

I ┴ I < ! ! < ! ! I

=========================

Входная конструкция

Описание

<простая переменная>

=

<значение>

Обращение к подграмматике простая переменная

Обращение к подграмматике значение

MOV <простая переменная> <значение>

ГРАММАТИКА ОБЪЯВЛЕНИЕ ПЕРЕМЕННОЙ

DecVar → Type SVar

DecVar → Type EqOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 4 * 4 ) :

=====================

I Ityp!svr!eqp!EpsI

=====================

ItypI ! = ! = ! I

I---I---+---+---+---I

IsvrI ! ! ! > I

I---I---+---+---+---I

IeqpI ! ! ! > I

I---I---+---+---+---I

I ┴ I < ! ! ! I

=====================

Входная конструкция

Описание

Вариант 1

Type

<идентификатор>

;

Вариант 2

Type

<идентификатор>

=

<значение>

;

ID

ID

Обращение к подграмматике значение

MOV <идентификатор> <значение>

ГРАММАТИКА ЗНАЧЕНИЕ

Val → Con

Val → Op

Val → StrOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 4 * 4 ) :

=====================

I Icon!op !sop!EpsI

=====================

IconI ! ! ! > I

I---I---+---+---+---I

Iop I ! ! ! > I

I---I---+---+---+---I

IsopI ! ! ! > I

I---I---+---+---+---I

I ┴ I < ! < ! < ! I

=====================

Входная конструкция

Описание

Вариант 1

<простая переменная>

Вариант 2

<константа>

Вариант 3

<операция>

Вариант 4

<строковая операция>

Обращение к подграмматике простая переменная

Обращение к подграмматике константа

Обращение к подграмматике операция

Обращение к подграмматике строковая операция

ГРАММАТИКА ЛЕВАЯ ЧАСТЬ УНАРНОЙ ОПЕРАЦИИ

LUOp → SVar

LUOp→ FCon

LUOp → StrOp

LUOp → UOp

LUOp → BrOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Isvr!fcn!sop!uop!brp!EpsI

=============================

IsvrI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IfcnI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IsopI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IuopI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IbrpI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

I ┴ I < ! < ! < ! < ! < ! I

=============================

Входная конструкция

Описание

Вариант 1

<простая переменная>

Вариант 2

<константа без знака>

Вариант 3

<строковая операция>

Вариант 4

<унарная операция>

Вариант 5

<операция скобки>

Обращение к подграмматике простая переменная

Обращение к подграмматике константа без знака

Обращение к подграмматике строковая операция

Обращение к подграмматике унарная операция

Обращение к подграмматике операция скобки

ГРАММАТИКА УНАРНАЯ ОПЕРАЦИЯ

UOp → LUOp ++

UOp → LUOp --

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 4 * 4 ) :

=====================

I Ilup!++ !-- !EpsI

=====================

IlupI ! = ! = ! I

I---I---+---+---+---I

I++ I ! ! ! > I

I---I---+---+---+---I

I-- I ! ! ! > I

I---I---+---+---+---I

I ┴ I < ! ! ! I

=====================

Входная конструкция

Описание

Вариант 1

<левая часть унарной операции>

++

Вариант 2

<левая часть унарной операции>

--

Обращение к подграмматикелевая часть унарной операции

++ <левая часть унарной операции>

Обращение к подграмматикелевая часть унарной операции

-- <левая часть унарной операции>

ГРАММАТИКА ЛЕВАЯ ЧАСТЬ МУЛЬТИПЛЕКАТИВНОЙ ОПЕРАЦИИ

LMOp → LUOp

LMOp → Mop

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 3 * 3 ) :

=================

I Ilop!mop!EpsI

=================

IlopI ! ! > I

I---I---+---+---I

ImopI ! ! > I

I---I---+---+---I

I ┴ I < ! < ! I

=================

Входная конструкция

Описание

Вариант 1

<левая часть унарной операции>

Вариант 2

<мультипликативная операция>

Обращение к подграмматикелевая часть унарной операции

Обращение к подграмматикемультиплекативная операция

ГРАММАТИКА МУЛЬТИПЛЕКАТИВНАЯ ОПЕРАЦИЯ

MOp → LMOp * LUOp

MOp → LMOp / LUOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Ilmp!lop!* !/ !EpsI

=========================

IlmpI ! ! = ! = ! I

I---I---+---+---+---+---I

IlopI ! ! ! ! > I

I---I---+---+---+---+---I

I* I ! = ! ! ! I

I---I---+---+---+---+---I

I/ I ! = ! ! ! I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

Вариант 1

<левая часть мультипликативной операции>

*

<левая часть унарной операции>

Вариант 2

<левая часть мультипликативной операции>

/

<левая часть унарной операции>

Обращение к подграмматикелевая часть мультиплекативной операции

Обращение к подграмматикелевая часть унарной операции

* <левая часть мультипликативной операции> <левая часть унарной операции>

Обращение к подграмматикелевая часть мультиплекативной операции

Обращение к подграмматикелевая часть унарной операции

/ <левая часть мультипликативной операции> <левая часть унарной операции>

ГРАММАТИКА ЛЕВАЯ ЧАСТЬ АДДИТИВНОЙ ОПЕРАЦИИ

LAdOp → LMOp

LAdOp → AdOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 3 * 3 ) :

=================

I Ilmp!aop!EpsI

=================

IlmpI ! ! > I

I---I---+---+---I

IaopI ! ! > I

I---I---+---+---I

I ┴ I < ! < ! I

=================

Входная конструкция

Описание

Вариант 1

<левая часть мультипликативной операции>

Вариант 2

<аддитивная операция>

Обращение к подграмматикелевая часть мультиплекативной операции

Обращение к подграмматикеаддитивная операция

ГРАММАТИКА АДДИТИВНАЯ ОПЕРАЦИЯ

AdOp → LAdOp + LMOp

AdOp → LAdOp – LMOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Ilao!lmp!+ !- !EpsI

=========================

IlaoI ! ! = ! = ! I

I---I---+---+---+---+---I

IlmpI ! ! ! ! > I

I---I---+---+---+---+---I

I+ I ! = ! ! ! I

I---I---+---+---+---+---I

I- I ! = ! ! ! I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

Вариант 1

<левая часть аддитивной операции>

+

<левая часть мультипликативной операции>

Вариант 2

<левая часть аддитивной операции>

-

<левая часть мультипликативной операции>

Обращение к подграмматикелевая часть аддитивной операции

Обращение к подграмматикелевая часть мультиплекативной операции

+ <левая часть аддитивной операции>

<левая часть мультипликативной операции>

Обращение к подграмматикелевая часть аддитивной операции

Обращение к подграмматикелевая часть мультиплекативной операции

- <левая часть аддитивной операции>

<левая часть мультипликативной операции>

ГРАММАТИКА УСЛОВНОЕ ПРИСВАИВАНИЕ

IEqOp → LogExp ? Val : Val

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Ilge!? !val!: !EpsI

=========================

IlgeI ! = ! ! ! I

I---I---+---+---+---+---I

I? I ! ! = ! ! I

I---I---+---+---+---+---I

IvalI ! ! ! = ! > I

I---I---+---+---+---+---I

I: I ! ! = ! ! I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

<логическое выражение>

?

<значение1>

:

<значение2>

Обращение к подграмматикелогическое выражение

Обращение к подграмматикезначение

Обращение к подграмматикезначение

<логическое выражение>1

BF (1) label1 2

<значение1> 3

BRL label2 4

DEFL label1 5

<значение2> 6

DEFL label2 7

ГРАММАТИКА ОПЕРАЦИЯ ДЛИНА СТРОКИ

StrL → StrVal _length()

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 3 * 3 ) :

=================

I Isvl!len!EpsI

=================

IsvlI ! = ! I

I---I---+---+---I

IlenI ! ! > I

I---I---+---+---I

I ┴ I < ! ! I

=================

Входная конструкция

Описание

< строка>

length()

Str

Length < строка>

ГРАММАТИКА ОПЕРАЦИЯ КОНКАТЕНАЦИЯ СТРОК

ConStr→str_concat(str);

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Istr!con!( !) !EpsI

=========================

IstrI ! = ! ! = ! I

I---I---+---+---+---+---I

IconI ! ! = ! ! I

I---I---+---+---+---+---I

I( I = ! ! ! ! I

I---I---+---+---+---+---I

I) I ! ! ! ! > I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

<строка1>

Concat

(

<строка1>

)

Str

Str

Concat<строка1> <строка1>

ГРАММАТИКА ОПЕРАЦИЯ ДОСТУП К СТРОКЕ

AcToStr→strsubstring(num,num);

AcToStr→strsubstring(num);

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 7 * 7 ) :

=================================

I Istr!sub!( !) !num!, !EpsI

=================================

IstrI ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---I

IsubI ! ! = ! ! ! ! I

I---I---+---+---+---+---+---+---I

I( I ! ! ! ! = ! ! I

I---I---+---+---+---+---+---+---I

I) I ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---I

InumI ! ! ! = ! ! = ! I

I---I---+---+---+---+---+---+---I

I, I ! ! ! ! = ! ! I

I---I---+---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! ! I

=================================

Входная конструкция

Описание

<строка>

Substring

(

<целое1>

,

<целое2>

)

Str

NUM

NUM

Substring <строка> <целое1> 1

Add(1)<целое2> 2

ГРАММАТИКА ОПЕРАЦИЯ ЗАМЕНА ПОДСТРОКИ В СТРОКЕ

ChStr → str replace(str, str);

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Istr!rep!( !) !, !EpsI

=============================

IstrI ! = ! ! = ! = ! I

I---I---+---+---+---+---+---I

IrepI ! ! = ! ! ! I

I---I---+---+---+---+---+---I

I( I = ! ! ! ! ! I

I---I---+---+---+---+---+---I

I) I ! ! ! ! ! > I

I---I---+---+---+---+---+---I

I, I = ! ! ! ! ! I

I---I---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! I

=============================

Входная конструкция

Описание

<строка>

Replace

(

<строка1>

,

<строка2>

)

Str

Str

Str

Replace <строка> <строка1> 1

Add (1) <строка2> 2

ГРАММАТИКА ОПЕРАЦИЯ ПОИСК ПОДСТРОКИ В СТРОКЕ

FnStr→strfind(str);

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Istr!fnd!( !) !EpsI

=========================

IstrI ! = ! ! = ! I

I---I---+---+---+---+---I

IfndI ! ! = ! ! I

I---I---+---+---+---+---I

I( I = ! ! ! ! I

I---I---+---+---+---+---I

I) I ! ! ! ! > I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

<строка1>

Find

(

<строка2>

)

Str

Str

Find<строка1> <строка2>

ГРАММАТИКА СТРОКОВАЯ ОПЕРАЦИЯ

StrOp → StrL

StrOp → ConStr

StrOp → AcToStr

StrOp → ChStr

StrOp → FnStr

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Istl!cst!ats!cht!fns!EpsI

=============================

IstlI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IcstI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IatsI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IchtI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IfnsI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

I ┴ I < ! < ! < ! < ! < ! I

=============================

Входная конструкция

Описание

Вариант 1

<длина строки>

Вариант 2

<конкатенация строк>

Вариант 3

<доступ к подстроке>

Вариант 4

<замена подстроки в строке>

Вариант 5

<поиск подстроки в строке>

Обращение к подграмматикедлина строки

Обращение к подграмматикеконкатенация строк

Обращение к подграмматикедоступ к строке

Обращение к подграмматике замена подстроки в строке

Обращение к подграмматикепоиск подстроки встроке

ГРАММАТИКА ОПЕРАЦИЯ

Op → BrOp

Op → UOp

Op → MOp

Op → AdOp

Op → IEqOp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Ibrp!uop!mop!aop!ieo!EpsI

=============================

IbrpI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IuopI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

ImopI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IaopI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IieoI ! ! ! ! ! > I

I---I---+---+---+---+---+---I

I ┴ I < ! < ! < ! < ! < ! I

=============================

Входная конструкция

Описание

Вариант 1

<операция скобки>

Вариант 2

<унарная операция>

Вариант 3

<мультипликативная операция>

Вариант 4

<аддитивная операция>

Вариант 5

<условное присваивание>

Обращение к подграмматикеоперация скобки

Обращение к подграмматикеунарная операция

Обращение к подграмматикемультипликативная операция

Обращение к подграмматикеаддитивная операция

Обращение к подграмматикеусловное присваивание

ГРАММАТИКА БЛОК_КОДА

Blc → { Blc UOp }

Blc → { Blc DecVar }

Blc → { Blc EqOp }

Blc → { Blc StrOp }

Blc → { Blc Cyc }

Blc → { Blc CMet }

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 11 * 11 ) :

=================================================

I Iblc!bel!{ !} !eop!sto!cyc!cme!uop!dva!EpsI

=================================================

IblcI ! = ! ! ! < ! < ! < ! < ! < ! < ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

IbelI ! ! ! = ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

I{ I = ! = ! < ! ! < ! < ! < ! < ! < ! < ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

I} I ! ! ! ! > ! > ! > ! > ! > ! > ! > I

I---I---+---+---+---+---+---+---+---+---+---+---I

IeopI ! ! ! > ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

IstoI ! ! ! > ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

IcycI ! ! ! > ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

IcmeI ! ! ! > ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

IuopI ! ! ! > ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

IdvaI ! ! ! > ! ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---+---+---+---I

I ┴ I ! ! < ! ! ! ! ! ! ! ! I

=================================================

Входная конструкция

Описание

Вариант 1

{

<унарная операция>

}

Вариант 2

{

<объявление переменной>

}

Вариант 3

{

<операция присваивания>

}

Вариант 4

{

<строковая операция>

}

Вариант 5

{

<цикл с предусловием>

}

Вариант 6

{

<вызов метода>

}

Вариант 7

{

<блок кода>

}

Обращение к подграмматикеунарная операция

Обращение к подграмматикеобъявление переменной

Обращение к подграмматикеоперация присваивания

Обращение к подграмматикестроковая операция

Обращение к подграмматикецикл спредусловием

Обращение к подграмматикевызов метода

Обращение к подграмматикеблок кода

ГРАММАТИКА ВЫЗОВ МЕТОДА

CMet → ID(ListVal)

ListVal → val ListVal

ListVal → val

ListVal → exp

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 6 * 6 ) :

=============================

I Iid !( !) !val!exp!EpsI

=============================

Iid I ! = ! ! ! ! I

I---I---+---+---+---+---+---I

I( I ! ! = ! < ! < ! I

I---I---+---+---+---+---+---I

I) I ! ! ! ! ! > I

I---I---+---+---+---+---+---I

IvalI ! ! > ! < ! < ! I

I---I---+---+---+---+---+---I

IexpI ! ! > ! ! ! I

I---I---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! I

=============================

Входная конструкция

Описание

Вариант 1

<простая переменная>

.

<идентификатор>

(

<значение>

)

Обращение к подграмматикепростая переменная

ID

Обращение к подграмматикезначения

ГРАММАТИКА МЕТОД

Met → Type ID(listValues) Blc

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 7 * 7 ) :

=================================

I Ityp!id !( !lsv!) !blc!EpsI

=================================

ItypI ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---I

Iid I ! ! = ! ! ! ! I

I---I---+---+---+---+---+---+---I

I( I ! ! ! = ! ! ! I

I---I---+---+---+---+---+---+---I

IlsvI ! ! ! ! = ! ! I

I---I---+---+---+---+---+---+---I

I) I ! ! ! ! ! = ! I

I---I---+---+---+---+---+---+---I

IblcI ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! ! I

=================================

Входная конструкция

Описание

<тип>

<идентификатор>

(

<список параметров>

)

<блок кода>

Type

ID

Обращение к подграмматикесписок параметров

Обращение к подграмматикеблок кода

ГРАММАТИКА МЕТОД MAIN

MMet → void main(String ID) Blc

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 8 * 8 ) :

=====================================

I Ivoi!man!( !str!id !) !blc!EpsI

=====================================

IvoiI ! = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

ImanI ! ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

I( I ! ! ! = ! ! ! ! I

I---I---+---+---+---+---+---+---+---I

IstrI ! ! ! ! = ! ! ! I

I---I---+---+---+---+---+---+---+---I

Iid I ! ! ! ! ! = ! ! I

I---I---+---+---+---+---+---+---+---I

I) I ! ! ! ! ! ! = ! I

I---I---+---+---+---+---+---+---+---I

IblcI ! ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! ! ! I

=====================================

Входная конструкция

Описание

void

main

(

<список параметров>

)

<блок кода>

Обращение к подграмматикесписок параметров

Обращение к подграмматикеблок кода

ГРАММАТИКА ОТНОШЕНИЕ

Att → LAtt > NVal

Att → LAtt < NVal

Att → LAtt >= NVal

Att → LAtt <= NVal

LAtt → NVal

LAtt → Att

NVal → MNUM

NVal → DOUBLE

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 7 * 7 ) :

=================================

I I>= !<= !> !< !Mnm!db !EpsI

=================================

I>= I > ! > ! > ! > ! < ! < ! > I

I---I---+---+---+---+---+---+---I

I<= I > ! > ! > ! > ! < ! < ! > I

I---I---+---+---+---+---+---+---I

I> I > ! > ! > ! > ! < ! < ! > I

I---I---+---+---+---+---+---+---I

I< I > ! > ! > ! > ! < ! < ! > I

I---I---+---+---+---+---+---+---I

IMnmI > ! > ! > ! > ! ! ! > I

I---I---+---+---+---+---+---+---I

Idb I > ! > ! > ! > ! ! ! > I

I---I---+---+---+---+---+---+---I

I ┴ I < ! < ! < ! < ! < ! < ! I

=================================

Входная конструкция

Описание

Вариант 1

<левая часть отношения>

>

<значение>

Вариант 2

<левая часть отношения>

<

<значение>

Вариант 3

<левая часть отношения>

>=

<значение>

Вариант 4

<левая часть отношения>

<=

<значение>

Обращение к подграмматикелевая часть отношения

Обращение к подграмматикезначение

MORE <левая часть отношения> <значение>

Обращение к подграмматикелевая часть отношения

Обращение к подграмматикезначение

LESS <левая часть отношения> <значение>

Обращение к подграмматикелевая часть отношения

Обращение к подграмматикезначение

GE <левая часть отношения> <значение>

Обращение к подграмматикелевая часть отношения

Обращение к подграмматикезначение

LE <левая часть отношения> <значение>

ГРАММАТИКА ЭКВИВАЛЕНТНОСТЬ

Ecv → RLogExp == LAtt

Ecv → RLogExp!= LAtt

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 5 * 5 ) :

=========================

I Irle!== !!= !lat!EpsI

=========================

IrleI ! = ! = ! ! I

I---I---+---+---+---+---I

I== I ! ! ! = ! I

I---I---+---+---+---+---I

I!= I ! ! ! = ! I

I---I---+---+---+---+---I

IlatI ! ! ! ! > I

I---I---+---+---+---+---I

I ┴ I < ! ! ! ! I

=========================

Входная конструкция

Описание

Вариант 1

<правая часть эквивалентности>

==

<левая часть отношения>

Вариант 2

< правая часть эквивалентности>

! =

<левая часть отношения>

Обращение к подграмматикеправая часть эквивалентности

Обращение к подграмматикелевая часть отношения

== < правая часть эквивалентности> <левая часть отношения>

Обращение к подграмматикеправая часть эквивалентности

Обращение к подграмматикелевая часть отношения

!=< правая часть эквивалентности> <левая часть отношения>

ГРАММАТИКА ПРАВАЯ ЧАСТЬ ЛОГИЧЕСКОГО ВЫРАЖЕНИЯ

RLogExp→LogExp

RLogExp → Val

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 3 * 3 ) :

=================

I Ilex!val!EpsI

=================

IlexI ! ! > I

I---I---+---+---I

IvalI ! ! > I

I---I---+---+---I

I ┴ I < ! < ! I

=================

Входная конструкция

Описание

Вариант 1

<логическое выражение>

Вариант 2

<значение>

Обращение к подграмматикелогическое выражение

Обращение к подграмматике значение

ГРАММАТИКА ЛОГИЧЕСКОЕ ВЫРАЖЕНИЕ

LogExp→LogExp||RLogExp

LogExp→LogExp&&RLogExp

LogExp→RLogExp

LogExp→ ! RLogExp

LogExp→Ecv

LogExp → Att

Грамматика не является грамматикой операторного предшествования, так как не выполняются необходимые условия:

- существует правило вида E->T, гдеTнетерминал.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 7 * 7 ) :

=================================

I Irle!|| !&& !! !ecv!att!EpsI

=================================

IrleI ! > ! > ! ! ! ! > I

I---I---+---+---+---+---+---+---I

I|| I = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---I

I&& I = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---I

I! I = ! ! ! ! ! ! I

I---I---+---+---+---+---+---+---I

IecvI ! > ! > ! ! ! ! > I

I---I---+---+---+---+---+---+---I

IattI ! > ! > ! ! ! ! > I

I---I---+---+---+---+---+---+---I

I ┴ I < ! < ! < ! < ! < ! < ! I

=================================

Входная конструкция

Описание

Вариант 1

<логическое выражение>

||

<правая часть логического выражения>

Вариант2

<логическое выражение>

&&

<правая часть логического выражения>

Вариант 3

<правая часть логического выражения>

Вариант 4

!

<правая часть логического выражения>

Вариант 5

<эквивалентность>

Вариант 6

<отношение>

Обращение к подграмматикелогическое выражение

Обращение к подграмматикеправая часть логического выражения

|| <логическое выражение> <правая часть логического выражения>

Обращение к подграмматикелогическое выражение

Обращение к подграмматикеправая часть логического выражения

&& <логическое выражение> <правая часть логического выражения>

Обращение к подграмматикеправая часть логического выражения

Обращение к подграмматикеправая часть логического выражения

! <правая часть логического выражения>

Обращение к подграмматикеэквивалентность

Обращение к подграмматикеотношение

ГРАММАТИКА ЦИКЛ С ПРЕДУСЛОВИЕМ

Cyc→while(LogExp)EqOp

Cyc→while(LogExp)Blc

Cyc→while(LogExp)

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

МАТРИЦА ПРЕДШЕСТВОВАНИЯ :

---- ( количество элементов : 7 * 7 ) :

=================================

I Iwhl!lex!eqp!blc!( !) !EpsI

=================================

IwhlI ! ! ! ! = ! ! I

I---I---+---+---+---+---+---+---I

IlexI ! ! ! ! ! = ! I

I---I---+---+---+---+---+---+---I

IeqpI ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---I

IblcI ! ! ! ! ! ! > I

I---I---+---+---+---+---+---+---I

I( I ! = ! ! ! ! ! I

I---I---+---+---+---+---+---+---I

I) I ! ! = ! = ! ! ! > I

I---I---+---+---+---+---+---+---I

I ┴ I < ! ! ! ! ! ! I

=================================

Входная конструкция

Описание

Вариант 1

While

(

<логическое выражение>

)

<операция присваивания>

Вариант 1

While

(

<логическое выражение>

)

<блок кода>

Обращение к подграмматикелогическое выражение

Обращение к подграмматике операция присваивания

DEFLLbegin1

<логическое выражение> 2

BF(2)Lend3

<операция присваивания>4

BRLLbegin5

DEFLLend6

Обращение к подграмматикелогическое выражение

Обращение к подграмматике блок кода

DEFLLbegin1

<логическое выражение> 2

BF(2)Lend3

<блок кода> 4

BRL Lbegin 5

DEFL Lend 6

ГРАММАТИКА УСЛОВНЫЙ ОПЕРАТОР

Opif→if(LogExp)Blc

Opif → if (LogExp) Blc else Blc

Грамматика является грамматикой операторного предшествования, так как выполняются необходимые условия.

================================= I   IIF !ELS!lex!blc!(  !)  !EpsI ================================= IIF I   !   !   !   ! = !   !   I I---I---+---+---+---+---+---+---I IELSI   !   !   ! = !   !   !   I I---I---+---+---+---+---+---+---I IlexI   !   !   !   !   ! = !   I I---I---+---+---+---+---+---+---I IblcI   ! = !   !   !   !   ! > I I---I---+---+---+---+---+---+---I I(  I   !   ! = !   !   !   !   I I---I---+---+---+---+---+---+---I I)  I   !   !   ! = !   !   !   I I---I---+---+---+---+---+---+---I I а I < !   !   !   !   !   !   I =================================

Входная конструкция

Описание

Вариант 1

If

(

<логическое выражение>

)

<блок кода1>

Else

<блок кода2>

Вариант 2

If

(

<логическое выражение>

)

<блок кода1>

Обращение к подграмматикелогическое выражение

Обращение к подграмматикеблок кода

Обращение к подграмматикеблок кода

<логическое выражение>1

BF(1)label1 2

<блок кода1> 3

BRLlabel2 4

DEFL label1 5

<блок кода2> 6

DEFL label2 7

Обращение к подграмматикелогическое выражение

Обращение к подграмматикеблок кода

<логическое выражение>1

BRLlabel1 (1) 2

<блок кода1> 3

DEFLlabel1 4