⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringliteralelement.java

📁 SRI international 发布的OAA框架软件
💻 JAVA
字号:
package antlr_oaa;

/* ANTLR Translator Generator
 * Project led by Terence Parr at http://www.jGuru.com
 * Software rights: http://www.antlr.org/RIGHTS.html
 *
 * $Id: StringLiteralElement.java,v 1.1 2002/11/08 17:37:41 agno Exp $
 */

class StringLiteralElement extends GrammarAtom {
    // atomText with quotes stripped and escape codes processed
    protected String processedAtomText;


    public StringLiteralElement(Grammar g, Token t, int autoGenType) {
	super(g, t, autoGenType);
	if (!(g instanceof LexerGrammar)) {
	    // lexer does not have token types for string literals
	    TokenSymbol ts = grammar.tokenManager.getTokenSymbol(atomText);
	    if (ts == null) {
		g.tool.error("Undefined literal: " + atomText, grammar.getFilename(), t.getLine());
	    } else {
		tokenType = ts.getTokenType();
	    }
	}
	line = t.getLine();

	// process the string literal text by removing quotes and escaping chars
	// If a lexical grammar, add the characters to the char vocabulary
	processedAtomText = new String();
	for (int i = 1; i < atomText.length()-1; i++)
	    {
		char c = atomText.charAt(i);
		if (c == '\\') {
		    if (i+1 < atomText.length()-1) {
			i++;
			c = atomText.charAt(i);
			switch (c) {
			case 'n' : c = '\n'; break;
			case 'r' : c = '\r'; break;
			case 't' : c = '\t'; break;
			}
		    }
		}
		if (g instanceof LexerGrammar) {
		    ((LexerGrammar)g).charVocabulary.add(c);
		}
		processedAtomText += c;
	    }
    }
    public void generate() {
	grammar.generator.gen(this);
    }
    public Lookahead look(int k) {
	return grammar.theLLkAnalyzer.look(k, this);
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -