正在加载图片...
China-pub.com 第4章自顶向下的分析 111 下载 function exp syntaxTree; var temp,newtemp:syntaxTree; begin fen:■ferm: while token =+or token =-do case token of +match (+) newtemp:=makeOpNode(+); leftChild(newtemp):=temp rightChild(newtemp):=term; femp :newtemp; -match ( newtemp :=makeOpNode(-); leftChild(newtemp):=temp righiChild(newtemp):=term; temp :newtemp; end case; end while; return temp end exp; 或更简单的 function exp:syntaxTree; var femp,newtemp syntaxTree begin temp :term; while token =+or token =-do newtemp:=makeOpNode(token); match (token): lefiChild(newtemp):=temp rightChild(newtemp):=term; temp :newtemp end while; return temp; end exp; 这个代码使用了新函数makeOpNode,它接受作为参数的运算符记号并返回新建的语法树节点 我们还通过写出lefChild():=p或rightChild()=p指出将一个语法树p的赋值作为语法树1的 一个左子树或右子树。有了这个伪代码之后,xp过程实际构造了语法树而不是分析树。这是 因为一个对xp的调用并不总是构造一个新的树节点:如没有运算符,xp则仅仅是传送回从最 初调用到term收到的树来作为它自己的值。也可以写出与1erm和actor相对应的伪代码(参见 练习)。 function exp : s y n t a x Tree ; var t e m p, newtemp : s y n t a x Tree ; b e g i n temp := term ; while token = + or token = - d o case token o f + : match (+) ; newtemp := m a k e O p N o d e(+) ; l e f t C h i l d(n e w t e m p) := temp ; r i g h t C h i l d(n e w t e m p) := term ; temp := newtemp ; - : match (-) ; newtemp := m a k e O p N o d e(-) ; l e f t C h i l d(n e w t e m p) := temp ; r i g h t C h i l d(n e w t e m p) := t e r m ; temp := newtemp ; end case ; end while ; return temp ; end exp ; 或更简单的 function exp : s y n t a x Tree ; var t e m p, newtemp : s y n t a x Tree ; b e g i n temp := term ; while token = + or token = - d o newtemp := m a k e O p N o d e(t o k e n) ; match (t o k e n) ; l e f t C h i l d(n e w t e m p) := temp ; r i g h t C h i l d(n e w t e m p) := term ; temp := newtemp ; end while ; return temp ; end exp ; 这个代码使用了新函数m a k e O p N o d e,它接受作为参数的运算符记号并返回新建的语法树节点。 我们还通过写出leftChild (t) := p 或rightChild (t) := p 指出将一个语法树p 的赋值作为语法树t 的 一个左子树或右子树。有了这个伪代码之后, e x p过程实际构造了语法树而不是分析树。这是 因为一个对e x p的调用并不总是构造一个新的树节点;如没有运算符, e x p则仅仅是传送回从最 初调用到t e r m收到的树来作为它自己的值。也可以写出与 t e r m和f a c t o r相对应的伪代码(参见 练习)。 第 4章 自顶向下的分析 1 1 1 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有