第七章动作文法和属性文法 义处理的抽象描述。 C作用:自动实现语法和语义检查 C分类: 动作文法 属性文法
第七章 动作文法和属性文法 语义处理的抽象描述。 作用:自动实现语法和语义检查 分类: 动作文法 属性文法
动作文法 动作文法 动作符( Action Symbo) 动作文法( Action Grammer) 尾动作文法 抽象动作文法 动作文法的实现: 动作文法的L实现 动作文法的LR实现
动作文法 动作文法 动作符(Action Symbol) 动作文法(Action Grammer) 尾动作文法 抽象动作文法 动作文法的实现: 动作文法的LL实现 动作文法的LR实现
动作符和动作文法 动作符:(区别于语法符号) 作用:无语法作用,代表语义动作。 形式:#Name (Name是语义子程序名,无参。) 位置:产生式右部的任意位置 动作文法:产生式带动作符的文法 作用:描述语义分析、中间代码生成 等工作过程
动作符和动作文法 动作符: (区别于语法符号) 作用:无语法作用,代表语义动作。 形式:#Name (Name是语义子程序名,无参。) 位置:产生式右部的任意位置 动作文法:产生式带动作符的文法。 作用:描述语义分析、中间代码生成 等工作过程
动作文法的例子 例:文法 L→DL L→>DL L→)入 L→入<0ut> D→)a D→)a D b D→b<Add S:=0 亲Add:S:=S+1 来Out: Print(S)
动作文法的例子 例:文法: L → D L L → D → a D → b L →D L L → <Out> D → a D → b <Add> S:=0 Add: S:=S+1 Out: Print(S)
SyntexStack InputStream Action bab L→)DL LD bab D→)b#Add L<A>b bab match b): S: =S+ ab L→DL LD ab D→a La b match(a) → LD D→b#Add L<A>b match(b); S: =S+ L→)#0ut <0 Prints)
SyntexStack InputStream Action L bab L → D L LD bab D → b #Add L<A>b bab match(b);S:=S+1 L ab L → D L LD ab D → a La ab match(a) L b L → D L LD b D → b #Add L<A>b b match(b);S:=S+1 L L → #Out <O> Print(S)