📄 bnf1.txt
字号:
<程序>=<程序首部> ; <程序分程序> .
<程序首部>=program 标识符
<程序分程序>=<分程序>
<标识符表>=标识符 <标识符子表>
<标识符子表>=, 标识符 <标识符子表>|ε
<有正负号数>=<正负号> <无正负号数>|<无正负号数>
<无正负号数>=无正负号整数|无正负号实数
<正负号>=+|-
<分程序>=<标号说明部分> <常量定义部分> <类型定义部分> <变量说明部分> < 过程和函数说明部分> <语句部分>
<标号说明部分>=label <标号> <标号子表> ;|ε
<标号子表>=, 无正负号整数 <标号子表>|ε
<常数定义部分>=const <常量定义> ; <常量定义子表>|ε
<常量定义子表>=<常量定义> ; <常量定义子表>|ε
<常量定义>=标识符 = <常量>
<常量>=<有正负号数>|标识符|字符串
<类型定义部分>=type <类型定义> ; <类型定义子表>|ε
<类型定义子表>=<类型定义> ; <类型定义子表>|ε
<类型定义>=标识符 = <类型>
<类型>=<类型标识符>|<新类型>
<类型标识符>=标识符
<新类型>=<新有序类型>|<新结构类型>|<新指针类型>
<变量说明部分>=var <变量说明> ; <变量说明子表>|ε
<变量说明子表>=<变量说明> ; <变量说明子表>|ε
<变量说明>=<标识符表> : <类型>
<简单类型>=<有序类型>|<实型标识符>
<有序类型>=<新有序类型>|<有序类型标识符>
<有序类型标识符>=<类型标识符>
<新有序类型>=<枚举类型>|<子界类型>
<枚举类型>=( <标识符表> )
<子界类型>=<常量> .. <常量>
<实型标识符>=<类型标识符>
<结构类型>=<新结构类型>|<结构类型标识符>
<结构类型标识符>=<类型标识符>
<新结构类型>=<数组类型>|<记录类型>|<集合类型>|<文件类型>
<数组类型>=array [ <下标类型> <下标子表> ] of <成分类型>
<下标子表>=, <下标类型> <下标子表>|ε
<下标类型>=<有序类型>
<成分类型>=<类型>
<记录类型>=record <域表> end
<域表>=<固定部分> <固定变体部分>|<变体部分>
<固定变体部分>=; <变体部分>|ε
<固定部分>=<记录段> <记录子表> |ε
<记录子表>=; <记录段> <记录子表> |ε
<记录段>=<标识符表> : <类型>
<变体部分>=case <变体选择符> of <变体> <变体子表>
<变体子表>=; <变体> <变体子表>|ε
<变体选择符>=<标志域> : <标志类型>
<变体>=<情况常量表> : ( <域表> )
<标志域>=标识符
<标志类型>=<有序类型标识符>
<集合类型>=set of <基类型>
<基类型>=<有序类型>
<文件类型>=file of <成分类型>
<指针类型>=<新指针类型>|<指针类型标识符>
<指针类型标识符>=<类型标识符>
<新指针类型>=^ <对象类型>
<对象类型>=<类型标识符>
<表达式>=<简单表达式> <简单表达式子式>
<简单表达式子式>=<关系运算符> <简单表达式> <简单表达式子式> |ε
<关系运算符>= = |<>|<|>|<=|>=
<简单表达式>=<正负号> <项> <项子式> |<项> <项子式>
<项子式>=<加减运算符> <项> <项子式>|ε
<加减运算符>=+|-|or
<项>=<因式> <因式子式>
<因式子式>=<乘除运算符> <因式> <因式子式>|ε
<乘除运算符>=*|/|div|mod|and
<因式>=<变量> |<无正负号常量>|<函数命名符>|<集合构造符>|( <表达式> )|not <因式>
<变量>=<整体变量>|<分量变量>|<标识变量>|<缓冲区变量>
<整体变量>=<变量标识符>
<变量标识符>=标识符
<分量变量>=<下标变量>|<域变量>
<下标变量>=<数组变量> [ <下标表达式> <下标表达式子式> ]
<下标表达式子式>=, <下标表达式> <下标表达式子式>|ε
<数组变量>=<变量>
<下标表达式>=<表达式>
<域变量>=<记录变量> . <域标识符>|<域命名标识符>
<记录变量>=<变量>
<域标识符>=标识符
<域命名标识符>=标识符
<缓冲区变量>=<文件变量> ^
<文件变量>=<变量>
<标识变量>=<指针变量> ^
<指针变量>=<变量>
<常量标识符>=标识符
<函数命名符>=<函数标识符> <实在参数表>
<实在参数表>=( <实在参数> <实在参数子表> )|ε
<实在参数子表>=, <实在参数> <实在参数子表>|ε
<实在参数>=<表达式>|<变量>|<过程标识符>|<函数标识符>
<集合构造符>=[ <元素列表> ]
<元素列表>=<元素> <元素列表子表>|ε
<元素列表子表>=, <元素> <元素列表子表>|ε
<元素>=<表达式> <..表达式>
<..表达式>=.. <表达式>|ε
<语句部分>=<复合语句>
<复合语句>=begin <语句序列> end
<语句序列>=<语句> <子语句>
<子语句>=; <语句> <子语句>|ε
<语句>=<标号> : <简单+结构语句> | <简单+结构语句>
<简单+结构语句>=<简单语句>|<结构语句>
<简单语句>=<空语句>|<赋值语句>|<过程语句>|<转向语句>
<空语句>=ε
<赋值语句>=<变量> := <表达式>
<过程语句>=<过程标识符> <实在参数表>
<转向语句>=goto <标号>
<结构语句>=<复合语句>|<条件语句>|<重复语句>|<开域语句>
<条件语句>=<如果语句>|<情况语句>
<如果语句>=if <布尔表达式> then <语句> <否则部分>
<布尔表达式>=<表达式>
<否则部分>=else<语句>|ε
<情况语句>=case <情况表达式> of <情况表元素> <情况表元素后续>
<情况表元素后续>=; <情况表元素> <情况表元素后续>|ε
<情况表达式>=<表达式>
<情况表元素>=<情况常量表> : <语句>
<情况常量表>=<情况常量> <情况常量子表>
<情况常量子表>=<情况常量> , <情况常量子表>|ε
<情况常量>=<常量>
<重复语句>=<直到语句>|<当语句>|<循环语句>
<直到语句>=repeat <语句序列> until <布尔表达式>
<当语句>=while <布尔表达式> do <语句>
<循环语句>=for <循环变量> := <初值> <升降> <终值> do <语句>
<升降>=to |downto
<循环变量>=<整体变量>
<初值>=<表达式>
<终值>=<表达式>
<开域语句>=with <记录变量表> do <语句>
<记录变量表>=<记录变量> <记录变量子表>
<记录变量子表>=, <记录变量> <记录变量子表>|ε
<过程和函数说明部分>=<过程说明> <过程和函数说明部分>|<函数说明> <过程和函数说明部分>|ε
<过程说明>=<过程首部> ; <过程分程序+forward>
<过程分程序+forward>=<过程分程序>| forward
<过程首部>=procedure 标识符 <形式参数表>
<过程标识符>=标识符
<过程分程序>=<分程序>
<过程标识>=procedure <过程标识符>
<函数说明>=<函数首部> ; <函数分程序+forward>
<函数分程序+forward>=<函数分程序>|forward
<函数首部>=function 标识符 <形式参数表> : <结果类型>
<函数标识符>=标识符
<结果类型>=<简单类型标识符>|<指针类型标识符>
<简单类型标识符>=<类型标识符>
<函数分程序>=<分程序>
<函数标识>=function <函数标识符>
<形式参数表>=( <形式参数段> <形式参数子表> )
<形式参数子表>=; <形式参数段> <形式参数子表>|ε
<形式参数段>= <值参数说明>|<变量参数说明>|<过程参数说明>|<函数参数说明>|<可调节数组参数说明>
<值参数说明>=<标识符表> : <类型标识符>
<变量参数说明>=var <标识符表> : <类型标识符>
<过程参数说明>=<过程首部>
<函数参数说明>=<函数首部>
<可调节数组参数说明>=<值可调节数组说明>|<变量可调节数组说明>
<值可调节数组说明>=<标识符表> : <可调节数组模式>
<变量可调节数组说明>=var <标识符表> : <可调节数组模式>
<下标类型说明>=标识符 .. 标识符 : <有序类型标识符>
<可调节数组模式>=array [ <下标类型说明> <下标类型说明子表> ] of <类型标识符+可调节数组模式>
<下标类型说明子表>=; <下标类型说明> <下标类型说明子表> |ε
<类型标识符+可调节数组模式>=<类型标识符>|<可调节数组模式>
<无正负号常量>=<无正负号数>|字符串|<常量标识符>|nil
<标号>=无正负号整数
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -