【发布时间】:2012-06-11 00:10:06
【问题描述】:
我是 Ada 的新手,我正在尝试将 Recursive Decent Parser 的编译器教程中的代码转换为 Ada。移植 Jack W Crenshaw 的教程“让我们构建编译器”一直是我学习多种语言的最喜欢的方式。在第三章之前,我使用单字符标记完成了所有工作。向多字符标记的转变一直很麻烦。
我有类似 sudo 代码的代码:
procedure GetName is
token: Ada.Strings.Unbounded;
begin
while IsAlNum(Look) loop
Token := Token & Look;
GetChar;
end loop
end GetName;
现在我知道 Ada 打算让字符串保持静态。但我需要能够将从输入中获取的每个新字符连接到 Token 中的字符集合。 Look 是全局预测值(最后输入的字符)。
感谢您的帮助。另外,网上有什么好的 Ada 教程或食谱网站吗?我为 C 程序员阅读了 Lovelace 和 Ada。 Ada RM 有点正式,只显示规格不使用...
再次感谢!
【问题讨论】: