Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Синтаксис языка Паскаль в нотации БНФ

.html
Скачиваний:
16
Добавлен:
01.05.2014
Размер:
5.92 Кб
Скачать

Pascal - Syntax in BNF Notation Pascal - Syntax in BNF Notation BNF (Backus Naur Form). pascal-program: program identifier program-headingopt ; block . program-heading: ( identifier-list ) identifier-list: identifier identifier-list , identifier block: block1 label-declaration ; block1 block1: block2 constant-declaration ; block2 block2: block3 type-declaration ; block3 block3: block4 variable-declaration ; block4 block4: block5 proc-and-func-declaration ; block5 block5: begin statement-list end label-declaration: label unsigned-integer label-declaration , unsigned-integer constant-declaration: const identifier = constant constant-declaration ; identifier = constant type-declaration: type identifier = type type-declaration ; identifier = type variable-declaration: var variableid-list : type variable-declaration ; variableid-list : type variableid-list: identifier variableid-list , identifier constant: integer real string constid + constid TADD- constid type: simple-type structured-type ^ typeid simple-type: ( identifier-list ) constant ... constant typeid structured-type: array [ index-list ] of type record field-list end set of simple-type file of type packed structured-type index-list: simple-type index-list , simple-type field-list: fixed-part fixed-part ; variant-part variant-part fixed-part: record-field fixed-part ; record-field record-field: empty fieldid-list : type fieldid-list: identifier fieldid-list , identifier variant-part: case tag-field of variant-list tag-field: typeid identifier : typeid variant-list: variant variant-list ; variant variant: empty case-label-list : ( field-list ) case-label-list: constant case-label-list , constant proc-and-func-declaration: proc-or-func proc-and-func-declaration ; proc-or-func proc-or-func: procedure identifier parametersopt ; block-or-forward function identifier parametersopt : typeid ; block-or-forward block-or-forward: block forward parameters: ( formal-parameter-list ) formal-parameter-list: formal-parameter-section formal-parameter-list ; formal-parameter-section formal-parameter-section: parameterid-list : typeid var parameterid-list : typeid procedure identifier parametersopt function identifier parametersopt : typeid parameterid-list: identifier parameterid-list , identifier statement-list: statement statement-list ; statement statement: empty variable := expression begin statement-list end if expression then statement if expression then statement else statement case expression of case-list end while expression do statement repeat statement-list until expression for varid := for-list do statement procid procid ( expression-list ) goto label with record-variable-list do statement label : statement variable: identifier variable [ subscript-list ] variable . fieldid variable ^ subscript-list: expression subscript-list , expression case-list: case-label-list : statement case-list ; case-label-list : statement for-list: expression to expression expression downto expression expression-list: expression expression-list , expression label: unsigned-integer record-variable-list: variable record-variable-list , variable expression: expression relational-op additive-expression additive-expression relational-op: one of < <= = <> => > additive-expression: additive-expression additive-op multiplicative-expression multiplicative-expression additive-op: one of + - or multiplicative-expression: multiplicative-expression multiplicative-op unary-expression unary-expression multiplicative-op: one of * / div mod and in unary-expression: unary-op unary-expression primary-expression unary-op: one of + - not primary-expression: variable unsigned-integer unsigned-real string nil funcid ( expression-list ) [ element-list ] ( expression ) element-list: empty element element-list , element element: expression expression ... expression constid: identifier typeid: identifier funcid: identifier procid: identifier fieldid: identifier varid: identifier empty:

Соседние файлы в предмете Теория языков программирования