【发布时间】:2013-03-28 17:08:51
【问题描述】:
我已经为此困惑了好几天,搜索似乎没有给出任何结果。让我想知道这是否可能。例如:
funct functionNAME (Object o) { o+1 };
关键是用户必须在花括号内使用标识符“o”,而不是其他标识符。这当然是由 (Object o) 部分中的输入指定的,其中 'o' 可以是任何东西。基本上花括号内的标识符必须与参数中定义的标识符相同。我知道我可以存储匹配的标记并将其打印到屏幕上,但是否可以将其用作词法标记本身?谢谢。
【问题讨论】:
-
你问的是反射吗? stackoverflow.com/questions/37628/…
-
如果您正在使用 JavaCC 编写编译器,您要做的是维护一个符号表,以跟踪代码中每个点可以使用的标识符。符号表通常还保留有关标识符的其他有用信息,例如它们代表什么(例如变量与函数)以及它们的类型。
-
你能澄清一下这个问题吗?我从您的最后一句话中得到的是:“我可以使用 [匹配的标记] 作为词汇标记吗?”但我怀疑这不是你的意思。
-
您知道如何定义令牌,例如LETTER_A : {"a"} 或定义解析器可以通过令牌接受的内容,例如
| ,我想说的是解析器可以接受的内容取决于输入,这意味着它不是我事先设置的,例如USER_INPUT:{用户输入}。我想存储这个输入并像那样使用它。我不知道他们会放什么,除了它会是一个字符串,例如它可能是一个单一的 'y' 字符。清楚吗?我知道这是一个很奇怪的问题,因为我在任何地方都没有找到答案。
标签: java variables match token javacc