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 + -
显示快捷键?