printsemantic.java
来自「java 词法分析器,用于一般的C,C++,VB,PS/SQL 语句的翻译」· Java 代码 · 共 35 行
JAVA
35 行
package fri.patterns.interpreter.parsergenerator.semantics;import java.util.*;import fri.patterns.interpreter.parsergenerator.Token;import fri.patterns.interpreter.parsergenerator.Semantic;import fri.patterns.interpreter.parsergenerator.syntax.Rule;/** Simple test semantic that outputs the rule nonterminal on left side and its parsed values. @author (c) 2000, Fritz Ritzberger*/public class PrintSemantic implements Semantic{ public Object doSemantic(Rule rule, List inputTokens, List ranges) { StringBuffer sb = new StringBuffer(); for (int i = 0; i < inputTokens.size(); i++) sb.append((i > 0 ? " " : "")+inputTokens.get(i).toString()); String range = ""; if (ranges.size() > 0) { Token.Range startRange = (Token.Range) ranges.get(0); Token.Range endRange = (Token.Range) ranges.get(ranges.size() - 1); range = startRange.start+"-"+endRange.end; } String s = sb.toString(); System.err.println("Nonterminal="+rule.getNonterminal()+", range("+range+"), Input=\""+s+"\""); return s; } }
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?