有了词法解析的词法单元,就可以做语法解析。
语法结构
程序语法结构和英语里的句式相同,比如"i eat apple"对应的句式是主谓宾结构,名词+动词+名词,这个就是合理的语法结构。而"i banner apple"(名词+名词+名词)无法理解,就是不合理的语法结构。
声明变量的语法结构:int a = 12; 类型+变量+等于符号+值+分号 , 这是合理的语法结构。
语法解析
有了语法结构,我们需要把多个词法单元解析成语法树。
语法树
语法树表达了词法单元之间的关系。说"语法树"这个词,是为了理解,实际上是引用。
比如计算表达式1+1*2解析语法树, term(1 , factor(1 2))。
语法图
和英语的句式结构一样,定义程序语言有哪些句式。语法图是最有乐趣的一部分,也是最重要的一部分。
语法图定义好后,语法解析就按照语法图来编写,几乎不费脑。
声明变量的语法结构:类型+变量+等于符号+值 (例子:int a = 12 )
函数定义的语法结构: fucntion关键字+变量+左花括号+声明变量*+右花括号 (例子:function sayHello{})
函数调用的语法结构:变量+左括号+右括号 (例子:sayHello() )
汇总到一起形成语法图:*代表多个
程序:(声明变量 或者 函数定义 或者 函数调用)*
声明变量:类型+变量+等于符号+值
函数定义:fucntion关键字+变量+左花括号+声明变量*+右花括号
函数调用:变量+左括号+右括号