Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Реалізація високоуровнего інтерфейсу навколо бази даних Berclee DB

Реферат Реалізація високоуровнего інтерфейсу навколо бази даних Berclee DB





'{*' Rawcode '*}'

{Tblproc :: CodeBlockPrint ('hh', $ _ [4], 0);}

| code 'Tab' '{*' rawcode '*}'

{Tblproc :: CodeBlockPrint ('tab', $ _ [4], 0);}

| code 'Def' '{*' rawcode '*}'

{Tblproc :: CodeBlockPrint ('cc', $ _ [4], 0);}

| code 'def' 'Top' '{*' rawcode '*}'

{Tblproc :: CodeBlockPrint ('cc', $ _ [5], 1);}

| code '{*' rawcode '*}'

{Tblproc :: CodeBlockPrint ('all', $ _ [3], 0);}

;


# ---------------------------------------------- -----------

enumblock: 'enum' id '{' Enumlist '}' ';'

{Tblproc :: EnumBlockPrint ($ _ [2], $ _ [4]);}

| 'enum' id ';' p> {Tblproc :: EnumBlockPrint ($ _ [2], []);}

;

enumlist: enumitem {[$ _ [1]]}

| enumitem ',' Enumlist {unshift @ {$ _ [3]}, $ _ [1]; $ _ [3]}

;

enumitem: id {[$ _ [1],'']}

| id '=' num {[$ _ [1], $ _ [3]]}

;


# ---------------------------------------------- -----------


structblock: 'struct' id '{' structlist '}' ';'

{Tblproc :: StructBlockPrint ($ _ [2], $ _ [4]);}

;


structlist: structitem {[$ _ [1]]}

| structitem structlist {unshift @ {$ _ [2]}, $ _ [1]; $ _ [2]}

;


structitem: id pnlistid ';'

{[$ _ [1], @ {$ _ [2]} [0], @ {$ _ [2]} [1]]}

;


# ---------------------------------------------- -----------

tableblock: tableforward

{Tblproc :: TableBlockPrint (@ {$ _ [1]} [0],'', [], []);}

| tablehead ';' p> {tblproc :: TableBlockPrint (@ {$ _ [1]} [0], @ {$ _ [1]} [1], @ {$ _ [1]} [2], []);} p> | tablehead tail ';'

{Tblproc :: TableBlockPrint (@ {$ _ [1]} [0], @ {$ _ [1]} [1], @ {$ _ [1]} [2], $ _ [2]);}

;


tail: idxtailitem {$ _ [1]}

| idxtailitem tail {unshift @ {$ _ [2]}, $ _ [1]; $ _ [2]}

| optiontailitem

| optiontailitem tail

;


tableforward: 'table' id ';' {[$ _ [2]]}

;


tablehead: 'table' memmodifid '{' memberlist '}'

{[@ {$ _ [2]} [0], @ {$ _ [2]} [1], $ _ [4]]}

;


memmodifid: id {[$ _ [1],'']}

| memmodificator id {[$ _ [2], '$']}

;


memberlist: memberitem {[$ _ [1]]}

| memberitem memberlist {unshift @ {$ _ [2]}, $ _ [1]; $ _ [2]}

;

memberitem: id pnlistid ';'

{[$ _ [1], @ {$ _ [2]} [0], @ {$ _ [2]} [1], []]}

| id pnlistid modificator1 ';'

{[$ _ [1], @ {$ _ [2]} [0], @ {$ _ [2]} [1], $ _ [3]]}

;


modificator1: idxmodificator {[$ _ [1],'']}

# | idxmodificator memmodificator {[$ _ [1], '$','']}

| idxmodificator '{*' rawcode '*}' {[$ _ [1], $ _ [3]]}

# | idxmodificator memmodificator '{*' rawcode '*}' {[$ _ [1], '$', $ _ [4]]}

;


pnlistid: pnlist id {[$ _ [1], $ _ [2]]}

| id {[[], $ _ [1]]}

;


pnlist: pointer {[$ _ [1],'']}

| pointer array {[$ _ [1], $ _ [2]]}

| array {['', $ _ [1]]}

;


pointer: '+'

| '-'

| '*' p>;


array: '[' id ']' {$ _ [2]}

| '[' num ']' {$ _ [2]}

;


idxmodificator: '.!'

| ':!'

| '%!'

| '. +'

| ': +'

| '% +'

| '. -'

| ': -'

| '% -'

| '. ^'

| ': ^'

| '% ^'

;


memmodificator: '$' p>;


idxtailitem: 'idx' idxitem {[$ _ [2]]}

| 'idx' '{' idxitemlist '}' {$ _ [3]}

;




optiontailitem: 'option' '{' Oplist '}'

| 'option' opitem

;

# ---------------------------------------------- -----------

%%

use tblproc;



Основними компонентами цієї граматики є:

В· option - елемент мови, що визначає налаштування до конкретної таблиці.

В· Idx блок - це блок, визначальний параметри індексного таблиці.

В· Table блок - блок, що визначає таблицю, її записи й індекси.

В· Struct блок - блок, аналогічний table, з тією різницею, генерує тільки визначення структур записів без визначення самої...


Назад | сторінка 10 з 14 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Блок збудження для ВТП
  • Реферат на тему: А. Блок і символізм
  • Реферат на тему: Системний блок
  • Реферат на тему: Блок зарядного пристрою
  • Реферат на тему: Алгоритми і блок-схеми