简易c语言LL(1)文法

〈程序〉::〈声明〉|〈函数〉
〈声明〉::(A|〈声明〉‘)〈函数声明〉
A::〈头文件〉|〈宏定义〉
〈声明〉‘::〈声明〉|null
〈头文件〉::〈头文件〉〈头文件〉‘
〈头文件〉‘::〈头文件〉|null
〈宏定义〉::#define B〈宏定义〉|null
B::〈字符串 〉C
C::〈字符串〉|〈数字〉
〈字符串〉::〈变量名〉
〈函数声明〉::〈返回值类型 〉〈函数名〉(〈形参〉) ;〈函数声明〉|null
〈形参〉::〈数据类型 〉〈变量名〉|〈数据类型 〉〈变量名〉〈,〉〈形参〉|void
〈变量名〉::〈字母〉D
D::〈字母〉|〈数字〉|〈_〉|D|null
〈字母〉::F〈字母〉‘
F::a|b|...|y|z|(大写字母。。。)
〈字母〉‘::〈字母〉|null
〈数字〉::E〈数字〉‘
E::0|1|...|8|9
〈数字〉‘::〈数字〉|null
〈返回值类型〉::int|float|char|void
〈函数名〉::〈变量名〉
〈函数〉::〈返回值类型〉〈函数名〉{〈函数主体〉}|函数名〉{〈函数主体〉}〈函数〉
〈函数主体〉::〈变量的申请〉〈处理语句〉
〈变量的申请〉::〈数据类型 〉〈变量名〉;〈变量的申请〉‘
〈变量的申请〉‘::〈变量的申请〉|null
〈数据类型 〉::int|float|char
〈处理语句〉::F〈处理语句〉‘
F::〈赋值语句〉|〈判断语句〉|〈循环语句〉|〈函数调用〉
〈处理语句〉‘::〈处理语句〉|null
〈赋值语句〉::〈变量名〉=G
G::〈字母〉|〈数字〉|〈变量名〉|〈运算〉
〈运算〉::〈变量名〉〈运算符〉〈数字〉|〈数字〉〈运算符〉〈数字〉
〈运算符〉::+|-|*|/
〈判断语句〉::if(〈条件〉){〈处理语句〉|null}H
H::〈Else if〉else{〈处理语句〉|null}|null
〈Else if〉::〈Else if〉‘〈else if〉(〈条件〉){〈处理语句〉|null}|null
〈Else if〉‘::〈Else if〉|null
〈条件〉::〈变量名〉〈判断运算符〉〈变量名〉|〈变量名〉〈判断运算符〉〈数字〉|〈数字〉〈判断运算符〉〈数字〉|〈数字〉
〈判断运算符〉::=|>|<|>=|<=|!=
〈循环语句〉::while(〈条件〉){〈处理语句〉}|do{〈处理语句〉}while(〈条件〉)|for(〈赋值语句〉;〈条件〉;〈运算〉){〈处理语句〉}
〈函数调用〉::〈变量名〉=〈函数名〉(〈形参〉)|〈函数名〉(〈形参〉)

时间: 2024-08-07 20:57:26

简易c语言LL(1)文法的相关文章

简易c语言文法

<程序>→<外部声明>|<程序><外部声明> <外部声明>→<函数定义>|<声明> <函数定义>→<类型说明><声明符><符合语句> <类型说明>→<void>|<char>|<int>|<float> <声明符>→<指针直接声明符>|<直接声明符> <指针>→<

c语言程序的文法分析

C语言程序--〉main函数,调用数据库|函数声明|函数定义 Main函数--〉函数定义变量|调用函数 函数声明--〉函数名.参数.函数类型 定义变量--〉函数类型 函数类型--〉void| CHAR| INT| FLOAT 定义--〉定义变量|调用函数 参数--〉参数类型.参数名 参数类型--〉void| CHAR| INT| FLOAT

Windows环境使用MinGW建立简易C语言开发环境

MinGW,是Minimalist GNUfor Windows的缩写.我们用MinGW来搭建一个简单的C语言开发环境. 一.安装MinGW 首先去官网下载MinGW的安装包:http://www.mingw.org/ 点击左侧边栏里Navigation下的Download 跳转到SourceFORGE,直接下载最新版 打开安装包安装MinGW. 选择Install. 这里选择安装路径和起来一些选项,默认即可.点击Continue. MinGW开始下载资源.下载完毕后点击Continue继续.

简易C语言学生成绩管理系统

ReadMe文件 5名学生,语数外.物理四门成绩.    1.每个人的总分,平均分    2.所有学生的各科成绩.平均分    3.按总分排序冒泡或选择排序    4.输入成绩,结果表格    5.下标法.指针法        结构体数组代表学生,学生(学号,姓名,语文.数学.英语.物理.总分.平均分)    输入并把成绩加入数组,等待排序    输出结果    分散成函数->文件 main.c #include<stdio.h> /*main.c  *OS:debian-linux  

编译原理学习(5)文法和语言总结与梳理

梳理第二章的内容,写一篇理解与总结. 文法: 以有穷的集合刻画无穷的集合的一个工具.用规则来说明句子的组成结构,用来表示无穷句子的语言描述. 句子与句型: 如果符号串x是由起始符号推导出的,则称x是文法G[S]的句型. 如果x中只包含终结符,则称x是文法G[S]的句子. 文法描述的语言是该文法一切句子的集合. 四种文法: 0型文法:α→β,其中α至少包含一个非终结符. 1型文法(上下文有关文法):α→β,其中|β|≥|α|,S→ε除外. 2型文法(上下文无关文法):a→β,其中a是一个非终结符.

编译原理(清华大学出版社)-- 文法和语言 -- 文法和语言的形式定义

规则(重写规则.产生式或生成式) 形如 α→β 或 α::=β 的(α,β)有序对,其中α称为规则的左部,β称为规则的右部,这里的符号 →(::=)读作 "定义为",例如A→a读作 “A定义为a” 文法 G定义为四元组(VN,VT,P,S) 其中VN为非终结符集(语法实体 或 变量):VT终结符集:P为规则(α→β)的集合,α∈(VN∪VT)* ,且至少包含一个非终结符,β∈(VN∪VT)*,VN,VT和P都是非空有穷集 S称为识别符或者开始符,它是一个非终结符,至少要在一条规则中作为

四种类型的文法总结

这是有关编译原理的. 乔姆斯基体系是计算机科学中刻画形式文法表达能力的一个分类谱系,是由诺姆·乔姆斯基于1956年提出的.它包括四个层次: 0-型文法(无限制文法或短语结构文法)包括所有的文法.该类型的文法能够产生所有可被图灵机识别的语言.可被图灵机识别的语言是指能够使图灵机停机的字串,这类语言又被称为递归可枚举语言.注意递归可枚举语言与递归语言的区别,后者是前者的一个真子集,是能够被一个总停机的图灵机判定的语言. 1-型文法(上下文相关文法)生成上下文相关语言.这种文法的产生式规则取如 αAβ

文法和语文总结与梳理

1. 梳理第二章的内容,写一篇理解与总结. 理解: 第二章讲了文法和语言,文法是有规则的,按照给出的文法规则,编译出相应的语言. 文法描述的语言是该文法一切句子的集合. 文法有四种类型:0型语言,上下文有关语言,上下文无关语言和正规语言. 且文法也具有二义性,就是一种文法,可以用两种以上的语法树来表示,则称这个文法有二义性. 推导方式有最左和最右推导,最右推导则是规范推导.根据文法推导出来的句子,可以用语法树更直观的表达出来. 还有一个句型分析,分为短语,直接短语,句柄. 总结:学完了第二章,自

Atitit 表达式原理 语法分析&#160;原理与实践 解析java的dsl &#160;递归下降是现阶段主流的语法分析方法

Atitit 表达式原理 语法分析 原理与实践 解析java的dsl  递归下降是现阶段主流的语法分析方法 于是我们可以把上面的语法改写成如下形式:1 合并前缀1 语法分析有自上而下和自下而上两种分析方法2 递归下降是现阶段主流的语法分析方法,2 于是我们可以把上面的语法改写成如下形式: 1)       Operator="+" | "-" | "*" | "/" 2)       Expression=<数字>