АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Построение КС-грамматики входного языка

Читайте также:
  1. III. Расчет и построение кривой намагничивания ТЭД.
  2. MS EXCEL. Использование электронного табличного процессора excel: построение графиков. Взаимодействие excel с другими приложениями windows.
  3. V. Расчет и построение скоростной характеристики ТЭД, отнесенной к ободу колеса электровоза.
  4. VI. Расчет и построение электротяговой характеристики ТЭД, отнесенной к ободу колеса электровоза.
  5. VII. Расчет и построение тяговой характеристики электровоза.
  6. А. Построение кривой предложения
  7. А. Построение кривой спроса
  8. Активный и пассивный запас языка.
  9. Анализ и построение линий Ганна.
  10. АНГЛИЙСКОГО ЯЗЫКА.
  11. Англо-американизмы в лексике корейского языка.
  12. Воздержание языка.

 

Для построения КС-грамматики входного языка необходимо:

1. Заменить металингвистические переменные БНФ обозначениями нетерминальных символов, используя короткие имена.

2. В качестве терминальных символов использовать токены.

3. Металингвистический символ «:=» заменить символом «»

4. Заменить одну металингвистическую формулу с n альтернативами на n правил грамматики с одинаковым символом в левой части правила вывода.

5. Исключить металингвистические символы [] и {}, включив в правила грамматики ε-правила и рекурсивные правила.

 

 

P – начальный нетерминальный символ.

P → void main() { DeclarVar DeclarVector CompositeOperator }

 

DeclarVar → TypeBase Ident DeclarVar;

DeclarVar →

 

DeclarVector → vector Ident [ Dimension ] DeclarVector

DeclarVector →

CompositeOperator → { SeqOperator }

SeqOperator → Operator; SeqOperator

SeqOperator →

 

Operator → [ Label ]: NonMarkedOperator

Operator → NonMarkedOperator

 

NonMarkedOperator → CompositeOperator

NonMarkedOperator → AssignOperator

NonMarkedOperator → ConAssignOperator

NonMarkedOperator → ConditionOperator

NonMarkedOperator → LoopOperator

NonMarkedOperator → GotoOperator

NonMarkedOperator → InputOperator

NonMarkedOperator → OutputOperator

 

ConAssignOperator → ( Logical Expr )? Expr: Expr

AssignOperator → Var AssignRel Expr

 

ConditionOperator → if ( LogicalExpr ) CompositeOperator

ConditionOperator → if ( LogicalExpr ) CompositeOperator else CompositeOperator

 

LoopOperator → for( AssignOperator; LogicalExpr; AssignOperator ) CompositeOperator

GotoOperator → goto Label

InputOperator → cin>> Var

OutputOperator → cout<< Var

 

Expr → Expr AddOperation Item

Expr → Item

Expr → Item UnaryOperation

Expr → ~ Vector

 

Item → Item MultOoperation Factor

Item →Factor

 

Factor → Var

Factor → ( Expr )

 

LogicalExpr → Con or Con

LogicalExpr → Relation

Con → LogicalFactor and LogicalFactor

LogicalFactor → ( LogicalExpr )

LogicalFactor → ( Relation )

LogicalFactor → not LogicalFactor

 

Relation →Expr RelOperation Expr

 

Var → Ident

Var → Vector

Label → Ident

 

Number →0

Number → NatNumber

 

NNumber → Number NNumber

NNumber →

 

Dimension → NatNumber

Dimension → NatNumber NNumber

 

Index → 0

Index → NatNumber Index

 

 

Vector → Ident

Vector → [ VectorElem NVectorElem ]

 

NVectorElem →, VectorElem

NVectorElem →

 

VectorElem →Ident [ Index ]

VectorElem → Ident

VectorElem → FloatNumber

 

FloatNumber → NatNumber NNumber. NNumber

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.005 сек.)