Implemented incremental analyzer for XML

This commit is contained in:
Akash Yadav
2022-06-21 22:11:35 +05:30
parent c6c49ea981
commit f385d06432
40 changed files with 72385 additions and 93817 deletions
@@ -1,226 +0,0 @@
/*
* This file is part of AndroidIDE.
*
* AndroidIDE is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* AndroidIDE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*
*/
package com.itsaky.androidide.language.xml;
import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.OPERATOR;
import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.forComment;
import static com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.get;
import static io.github.rosemoe.sora.widget.schemes.EditorColorScheme.LITERAL;
import android.graphics.Color;
import com.itsaky.androidide.app.StudioApp;
import com.itsaky.androidide.lexers.xml.XMLLexer;
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE;
import com.itsaky.androidide.utils.CharSequenceReader;
import com.itsaky.androidide.utils.ILogger;
import com.itsaky.inflater.util.CommonParseUtils;
import org.antlr.v4.runtime.CharStreams;
import org.antlr.v4.runtime.CodePointCharStream;
import org.antlr.v4.runtime.Token;
import java.io.IOException;
import java.util.Stack;
import io.github.rosemoe.sora.lang.analysis.SimpleAnalyzeManager;
import io.github.rosemoe.sora.lang.styling.CodeBlock;
import io.github.rosemoe.sora.lang.styling.MappedSpans;
import io.github.rosemoe.sora.lang.styling.Span;
import io.github.rosemoe.sora.lang.styling.Styles;
import io.github.rosemoe.sora.lang.styling.TextStyle;
import io.github.rosemoe.sora.widget.schemes.EditorColorScheme;
/**
* Simple analyzer implementation for the XML files.
*
* @author Akash Yadav
*/
public class XMLAnalyzer extends SimpleAnalyzeManager<Void> {
private static final ILogger LOG = ILogger.newInstance("XMLAnalyzer");
@Override
protected Styles analyze(StringBuilder content, Delegate<Void> delegate) {
CommonParseUtils parser =
new CommonParseUtils(
StudioApp.getInstance().getResourceTable(),
StudioApp.getInstance().getApplicationContext().getResources().getDisplayMetrics());
final var styles = new Styles();
final var colors = new MappedSpans.Builder();
CodePointCharStream stream;
try {
stream = CharStreams.fromReader(new CharSequenceReader(content));
} catch (IOException e) {
LOG.error("Unable to create stream for analyze", e);
return styles;
}
XMLLexer lexer = new XMLLexer(stream);
Token token;
int previous = 0;
int line, column, lastLine = 1;
var first = true;
final var stack = new Stack<CodeBlock>();
while (!delegate.isCancelled()) {
token = lexer.nextToken();
if (token == null) {
break;
}
if (token.getType() == XMLLexer.EOF) {
lastLine = token.getLine() - 1;
break;
}
line = token.getLine() - 1;
column = token.getCharPositionInLine();
lastLine = line;
switch (token.getType()) {
case XMLLexer.S:
case XMLLexer.SEA_WS:
if (first) {
colors.addNormalIfNull();
}
break;
case XMLLexer.COMMENT:
colors.addIfNeeded(line, column, forComment());
break;
case XMLLexer.OPEN:
case XMLLexer.OPEN_SLASH:
case XMLLexer.CLOSE:
case XMLLexer.SLASH:
case XMLLexer.SPECIAL_CLOSE:
case XMLLexer.EQUALS:
case XMLLexer.COLON:
case XMLLexer.XMLDeclOpen:
colors.addIfNeeded(line, column, get(OPERATOR));
break;
case XMLLexer.SLASH_CLOSE:
colors.addIfNeeded(line, column, get(OPERATOR));
final var closeBlock = stack.pop();
closeBlock.endLine = line;
closeBlock.endColumn = column;
styles.addCodeBlock(closeBlock);
break;
case XMLLexer.STRING:
// highlight hex color line
try {
var text = token.getText();
var textVar = text.replace("\"", "");
if (isColorValue(textVar)) {
int color =
parser.parseColor(textVar, StudioApp.getInstance().getApplicationContext());
Span span = Span.obtain(column + 1, LITERAL);
span.setUnderlineColor(color);
colors.add(line, span);
Span middle = Span.obtain(column + text.length() - 1, EditorColorScheme.LITERAL);
middle.setUnderlineColor(Color.TRANSPARENT);
colors.add(line, middle);
Span end =
Span.obtain(
column + text.length(), TextStyle.makeStyle(EditorColorScheme.TEXT_NORMAL));
end.setUnderlineColor(Color.TRANSPARENT);
colors.add(line, end);
} else {
colors.addIfNeeded(line, column, LITERAL);
}
} catch (Exception ex) {
// This color string is not valid
colors.addIfNeeded(line, column, LITERAL);
}
break;
case XMLLexer.Name:
var type = SchemeAndroidIDE.TEXT_NORMAL;
if (previous == XMLLexer.OPEN) {
type = SchemeAndroidIDE.XML_TAG;
final var block = styles.obtainNewBlock();
block.startLine = line;
block.startColumn = column;
stack.push(block);
}
if (previous == XMLLexer.OPEN_SLASH) {
type = SchemeAndroidIDE.XML_TAG;
final var block = stack.pop();
block.endLine = line;
block.endColumn = column;
styles.addCodeBlock(block);
}
String attribute = token.getText();
if (attribute.contains(":")) {
colors.addIfNeeded(line, column, SchemeAndroidIDE.FIELD);
colors.addIfNeeded(
line, column + attribute.indexOf(":"), EditorColorScheme.TEXT_NORMAL);
break;
}
colors.addIfNeeded(line, column, get(type));
break;
case XMLLexer.TEXT:
// highlight hex color line
try {
var textVar = token.getText();
if (isColorValue(textVar)) {
int color =
parser.parseColor(textVar, StudioApp.getInstance().getApplicationContext());
Span span = Span.obtain(column, get(SchemeAndroidIDE.TEXT_NORMAL));
span.setUnderlineColor(color);
colors.add(line, span);
} else {
colors.addIfNeeded(line, column, get(SchemeAndroidIDE.TEXT_NORMAL));
}
} catch (Exception ex) {
// This color string is not valid
colors.addIfNeeded(line, column, get(SchemeAndroidIDE.TEXT_NORMAL));
}
break;
default:
colors.addIfNeeded(line, column, get(SchemeAndroidIDE.TEXT_NORMAL));
break;
}
first = false;
if (token.getType() != XMLLexer.SEA_WS) {
previous = token.getType();
}
}
colors.determine(lastLine);
styles.spans = colors.build();
return styles;
}
private static boolean isColorValue(String value) {
return value.startsWith("#")
|| value.startsWith("@android:color")
|| value.startsWith("@color/");
}
}
@@ -0,0 +1,176 @@
/*
* This file is part of AndroidIDE.
*
* AndroidIDE is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* AndroidIDE is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with AndroidIDE. If not, see <https://www.gnu.org/licenses/>.
*/
package com.itsaky.androidide.language.xml
import android.graphics.Color
import com.itsaky.androidide.app.StudioApp
import com.itsaky.androidide.language.incremental.BaseIncrementalAnalyzeManager
import com.itsaky.androidide.language.incremental.IncrementalToken
import com.itsaky.androidide.language.incremental.LineState
import com.itsaky.androidide.lexers.xml.XMLLexer
import com.itsaky.androidide.lexers.xml.XMLLexer.CLOSE
import com.itsaky.androidide.lexers.xml.XMLLexer.COLON
import com.itsaky.androidide.lexers.xml.XMLLexer.DASH
import com.itsaky.androidide.lexers.xml.XMLLexer.EQUALS
import com.itsaky.androidide.lexers.xml.XMLLexer.NOT
import com.itsaky.androidide.lexers.xml.XMLLexer.Name
import com.itsaky.androidide.lexers.xml.XMLLexer.OPEN
import com.itsaky.androidide.lexers.xml.XMLLexer.OPEN_SLASH
import com.itsaky.androidide.lexers.xml.XMLLexer.SLASH
import com.itsaky.androidide.lexers.xml.XMLLexer.SLASH_CLOSE
import com.itsaky.androidide.lexers.xml.XMLLexer.SPECIAL_CLOSE
import com.itsaky.androidide.lexers.xml.XMLLexer.STRING
import com.itsaky.androidide.lexers.xml.XMLLexer.TEXT
import com.itsaky.androidide.lexers.xml.XMLLexer.XMLDeclOpen
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.FIELD
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.LITERAL
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.OPERATOR
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.TEXT_NORMAL
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.XML_TAG
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.forComment
import com.itsaky.inflater.util.CommonParseUtils
import io.github.rosemoe.sora.lang.analysis.IncrementalAnalyzeManager.LineTokenizeResult
import io.github.rosemoe.sora.lang.styling.CodeBlock
import io.github.rosemoe.sora.lang.styling.Span
import io.github.rosemoe.sora.lang.styling.TextStyle.makeStyle
import io.github.rosemoe.sora.text.Content
/**
* Syntax analyzer for XML.
*
* @author Akash Yadav
*/
class XMLAnalyzer : BaseIncrementalAnalyzeManager(XMLLexer::class.java) {
override fun computeBlocks(
text: Content?,
delegate: CodeBlockAnalyzeDelegate?,
): MutableList<CodeBlock> {
return mutableListOf()
}
override fun getMultilineTokenStartEndTypes(): Array<IntArray> {
val start = intArrayOf(OPEN, NOT, DASH, DASH)
val end = intArrayOf(DASH, DASH, OPEN)
return arrayOf(start, end)
}
override fun generateSpans(
tokens: LineTokenizeResult<LineState, IncrementalToken>,
): MutableList<Span> {
val app = StudioApp.getInstance()
val parser = CommonParseUtils(app.resourceTable, app.resources.displayMetrics)
val spans = mutableListOf<Span>()
var previous = XMLLexer.SEA_WS
var first = true
for (token in tokens.tokens) {
val type = token.type
val offset = token.startIndex
when (type) {
XMLLexer.S,
XMLLexer.SEA_WS, ->
if (first) {
spans.add(Span.obtain(0, makeStyle(TEXT_NORMAL)))
first = false
}
XMLLexer.COMMENT -> spans.add(Span.obtain(offset, forComment()))
OPEN,
DASH,
NOT,
OPEN_SLASH,
SLASH_CLOSE,
CLOSE,
SLASH,
SPECIAL_CLOSE,
EQUALS,
COLON,
XMLDeclOpen, -> spans.add(Span.obtain(offset, makeStyle(OPERATOR)))
STRING -> // highlight hex color line
try {
val text: String = token.text
val textVar = text.replace("\"", "")
if (isColorValue(textVar)) {
val color: Int =
parser.parseColor(textVar, StudioApp.getInstance().applicationContext)
val span = Span.obtain(offset + 1, makeStyle(LITERAL))
span.setUnderlineColor(color)
spans.add(span)
val middle = Span.obtain(offset + text.length - 1, makeStyle(LITERAL))
middle.setUnderlineColor(Color.TRANSPARENT)
spans.add(middle)
val end = Span.obtain(offset + text.length, makeStyle(TEXT_NORMAL))
end.setUnderlineColor(Color.TRANSPARENT)
spans.add(end)
} else {
spans.add(Span.obtain(offset, makeStyle(LITERAL)))
}
} catch (ex: Exception) {
// This color string is not valid
spans.add(Span.obtain(offset, makeStyle(LITERAL)))
}
Name -> {
var colorId = TEXT_NORMAL
if (previous == OPEN) {
colorId = XML_TAG
} else if (previous == OPEN_SLASH) {
colorId = XML_TAG
}
val attribute: String = token.text
if (attribute.contains(":")) {
spans.add(Span.obtain(offset, makeStyle(FIELD)))
spans.add(Span.obtain(offset + attribute.indexOf(":"), makeStyle(TEXT_NORMAL)))
break
}
spans.add(Span.obtain(offset, makeStyle(colorId)))
}
TEXT -> // highlight hex color line
try {
val textVar: String = token.text
if (isColorValue(textVar)) {
val color: Int =
parser.parseColor(textVar, StudioApp.getInstance().applicationContext)
val span = Span.obtain(offset, makeStyle(TEXT_NORMAL))
span.setUnderlineColor(color)
spans.add(span)
} else {
spans.add(Span.obtain(offset, makeStyle(TEXT_NORMAL)))
}
} catch (ex: Exception) {
// This color string is not valid
spans.add(Span.obtain(offset, makeStyle(TEXT_NORMAL)))
}
else -> spans.add(Span.obtain(offset, makeStyle(TEXT_NORMAL)))
}
if (token.getType() != XMLLexer.SEA_WS) {
previous = token.getType()
}
}
return spans
}
override fun handleIncompleteToken(token: IncrementalToken) {
token.type = XMLLexer.COMMENT
}
private fun isColorValue(value: String): Boolean {
return (value.startsWith("#") ||
value.startsWith("@android:color") ||
value.startsWith("@color/"))
}
}
@@ -26,7 +26,6 @@ import com.itsaky.androidide.language.CommonCompletionProvider;
import com.itsaky.androidide.language.IDELanguage;
import com.itsaky.androidide.lexers.xml.XMLLexer;
import com.itsaky.androidide.utils.ILogger;
import com.itsaky.androidide.utils.JavaCharacter;
import com.itsaky.androidide.views.editor.IDEEditor;
import com.itsaky.lsp.api.ILanguageServer;
@@ -58,10 +57,6 @@ public class XMLLanguage extends IDELanguage {
this.newlineHandlers = new NewlineHandler[0];
}
public boolean isAutoCompleteChar(char ch) {
return JavaCharacter.isJavaIdentifierPart(ch) || ch == '<' || ch == '/';
}
@Override
public int getIndentAdvance(@NonNull String content) {
try {
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,209 +1,170 @@
// Generated from JavadocLexer.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuleContext;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class JavadocLexer extends Lexer {
public static final int NAME = 1,
NEWLINE = 2,
SPACE = 3,
TEXT_CONTENT = 4,
AT = 5,
STAR = 6,
SLASH = 7,
JAVADOC_START = 8,
JAVADOC_END = 9,
INLINE_TAG_START = 10,
BRACE_OPEN = 11,
BRACE_CLOSE = 12;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\16x\b\1\4\2\t\2\4"
+ "\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"
+ "\13\4\f\t\f\4\r\t\r\3\2\6\2\35\n\2\r\2\16\2\36\3\3\3\3\5\3#\n\3\3\3\3"
+ "\3\3\3\6\3(\n\3\r\3\16\3)\5\3,\n\3\3\3\3\3\3\3\3\3\5\3\62\n\3\3\3\3\3"
+ "\3\3\6\3\67\n\3\r\3\16\38\5\3;\n\3\3\3\3\3\5\3?\n\3\3\3\3\3\3\3\6\3D\n"
+ "\3\r\3\16\3E\5\3H\n\3\5\3J\n\3\3\4\6\4M\n\4\r\4\16\4N\3\5\6\5R\n\5\r\5"
+ "\16\5S\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\t\3\t\3\t\7\ta\n\t\f\t\16\td"
+ "\13\t\3\n\5\ng\n\n\3\n\7\nj\n\n\f\n\16\nm\13\n\3\n\3\n\3\n\3\13\3\13\3"
+ "\13\3\f\3\f\3\r\3\r\2\2\16\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25"
+ "\f\27\r\31\16\3\2\5\4\2C\\c|\4\2\13\13\"\"\n\2\13\f\17\17\"\",,\61\61"
+ "B\\c}\177\177\2\u0088\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2"
+ "\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25"
+ "\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\3\34\3\2\2\2\5I\3\2\2\2\7L\3\2\2\2"
+ "\tQ\3\2\2\2\13U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21[\3\2\2\2\23f\3\2\2\2"
+ "\25q\3\2\2\2\27t\3\2\2\2\31v\3\2\2\2\33\35\t\2\2\2\34\33\3\2\2\2\35\36"
+ "\3\2\2\2\36\34\3\2\2\2\36\37\3\2\2\2\37\4\3\2\2\2 +\7\f\2\2!#\5\7\4\2"
+ "\"!\3\2\2\2\"#\3\2\2\2#\'\3\2\2\2$%\5\r\7\2%&\6\3\2\2&(\3\2\2\2\'$\3\2"
+ "\2\2()\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*,\3\2\2\2+\"\3\2\2\2+,\3\2\2\2,J\3"
+ "\2\2\2-.\7\17\2\2./\7\f\2\2/:\3\2\2\2\60\62\5\7\4\2\61\60\3\2\2\2\61\62"
+ "\3\2\2\2\62\66\3\2\2\2\63\64\5\r\7\2\64\65\6\3\3\2\65\67\3\2\2\2\66\63"
+ "\3\2\2\2\678\3\2\2\28\66\3\2\2\289\3\2\2\29;\3\2\2\2:\61\3\2\2\2:;\3\2"
+ "\2\2;J\3\2\2\2<G\7\17\2\2=?\5\7\4\2>=\3\2\2\2>?\3\2\2\2?C\3\2\2\2@A\5"
+ "\r\7\2AB\6\3\4\2BD\3\2\2\2C@\3\2\2\2DE\3\2\2\2EC\3\2\2\2EF\3\2\2\2FH\3"
+ "\2\2\2G>\3\2\2\2GH\3\2\2\2HJ\3\2\2\2I \3\2\2\2I-\3\2\2\2I<\3\2\2\2J\6"
+ "\3\2\2\2KM\t\3\2\2LK\3\2\2\2MN\3\2\2\2NL\3\2\2\2NO\3\2\2\2O\b\3\2\2\2"
+ "PR\n\4\2\2QP\3\2\2\2RS\3\2\2\2SQ\3\2\2\2ST\3\2\2\2T\n\3\2\2\2UV\7B\2\2"
+ "V\f\3\2\2\2WX\7,\2\2X\16\3\2\2\2YZ\7\61\2\2Z\20\3\2\2\2[\\\7\61\2\2\\"
+ "]\7,\2\2]^\7,\2\2^b\3\2\2\2_a\5\r\7\2`_\3\2\2\2ad\3\2\2\2b`\3\2\2\2bc"
+ "\3\2\2\2c\22\3\2\2\2db\3\2\2\2eg\5\7\4\2fe\3\2\2\2fg\3\2\2\2gk\3\2\2\2"
+ "hj\5\r\7\2ih\3\2\2\2jm\3\2\2\2ki\3\2\2\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2"
+ "no\7,\2\2op\7\61\2\2p\24\3\2\2\2qr\7}\2\2rs\7B\2\2s\26\3\2\2\2tu\7}\2"
+ "\2u\30\3\2\2\2vw\7\177\2\2w\32\3\2\2\2\23\2\36\")+\618:>EGINSbfk\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE"};
static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); }
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
NAME=1, NEWLINE=2, SPACE=3, TEXT_CONTENT=4, AT=5, STAR=6, SLASH=7, JAVADOC_START=8,
JAVADOC_END=9, INLINE_TAG_START=10, BRACE_OPEN=11, BRACE_CLOSE=12;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
public static String[] modeNames = {
"DEFAULT_MODE"
};
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
private static String[] makeRuleNames() {
return new String[] {
"NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", "AT", "STAR", "SLASH", "JAVADOC_START",
"JAVADOC_END", "INLINE_TAG_START", "BRACE_OPEN", "BRACE_CLOSE"
};
}
public static final String[] ruleNames = makeRuleNames();
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, null, null, "'@'", "'*'", "'/'", null, null, "'{@'",
"'{'", "'}'"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "NAME", "NEWLINE", "SPACE", "TEXT_CONTENT", "AT", "STAR", "SLASH",
"JAVADOC_START", "JAVADOC_END", "INLINE_TAG_START", "BRACE_OPEN", "BRACE_CLOSE"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public JavadocLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
private static String[] makeRuleNames() {
return new String[] {
"NAME",
"NEWLINE",
"SPACE",
"TEXT_CONTENT",
"AT",
"STAR",
"SLASH",
"JAVADOC_START",
"JAVADOC_END",
"INLINE_TAG_START",
"BRACE_OPEN",
"BRACE_CLOSE"
};
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
private static String[] makeLiteralNames() {
return new String[] {
null, null, null, null, null, "'@'", "'*'", "'/'", null, null, "'{@'", "'{'", "'}'"
};
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"NAME",
"NEWLINE",
"SPACE",
"TEXT_CONTENT",
"AT",
"STAR",
"SLASH",
"JAVADOC_START",
"JAVADOC_END",
"INLINE_TAG_START",
"BRACE_OPEN",
"BRACE_CLOSE"
};
}
@Override
@Override
public String[] getRuleNames() {
return ruleNames;
}
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
public JavadocLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() {
return "JavadocLexer.g4";
}
@Override
public String getGrammarFileName() { return "JavadocLexer.g4"; }
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 1:
return NEWLINE_sempred((RuleContext) _localctx, predIndex);
}
return true;
}
@Override
public String getSerializedATN() { return _serializedATN; }
private boolean NEWLINE_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return _input.LA(1) != '/';
case 1:
return _input.LA(1) != '/';
case 2:
return _input.LA(1) != '/';
}
return true;
}
@Override
public String[] getChannelNames() { return channelNames; }
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String[] getModeNames() { return modeNames; }
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
public ATN getATN() { return _ATN; }
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@Override
public boolean sempred(RuleContext _localctx, int ruleIndex, int predIndex) {
switch (ruleIndex) {
case 1:
return NEWLINE_sempred((RuleContext)_localctx, predIndex);
}
return true;
}
private boolean NEWLINE_sempred(RuleContext _localctx, int predIndex) {
switch (predIndex) {
case 0:
return _input.LA(1) != '/';
case 1:
return _input.LA(1) != '/';
case 2:
return _input.LA(1) != '/';
}
return true;
}
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\16x\b\1\4\2\t\2\4"+
"\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13\t"+
"\13\4\f\t\f\4\r\t\r\3\2\6\2\35\n\2\r\2\16\2\36\3\3\3\3\5\3#\n\3\3\3\3"+
"\3\3\3\6\3(\n\3\r\3\16\3)\5\3,\n\3\3\3\3\3\3\3\3\3\5\3\62\n\3\3\3\3\3"+
"\3\3\6\3\67\n\3\r\3\16\38\5\3;\n\3\3\3\3\3\5\3?\n\3\3\3\3\3\3\3\6\3D\n"+
"\3\r\3\16\3E\5\3H\n\3\5\3J\n\3\3\4\6\4M\n\4\r\4\16\4N\3\5\6\5R\n\5\r\5"+
"\16\5S\3\6\3\6\3\7\3\7\3\b\3\b\3\t\3\t\3\t\3\t\3\t\7\ta\n\t\f\t\16\td"+
"\13\t\3\n\5\ng\n\n\3\n\7\nj\n\n\f\n\16\nm\13\n\3\n\3\n\3\n\3\13\3\13\3"+
"\13\3\f\3\f\3\r\3\r\2\2\16\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n\23\13\25"+
"\f\27\r\31\16\3\2\5\4\2C\\c|\4\2\13\13\"\"\n\2\13\f\17\17\"\",,\61\61"+
"B\\c}\177\177\2\u0088\2\3\3\2\2\2\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2"+
"\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25"+
"\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\3\34\3\2\2\2\5I\3\2\2\2\7L\3\2\2\2"+
"\tQ\3\2\2\2\13U\3\2\2\2\rW\3\2\2\2\17Y\3\2\2\2\21[\3\2\2\2\23f\3\2\2\2"+
"\25q\3\2\2\2\27t\3\2\2\2\31v\3\2\2\2\33\35\t\2\2\2\34\33\3\2\2\2\35\36"+
"\3\2\2\2\36\34\3\2\2\2\36\37\3\2\2\2\37\4\3\2\2\2 +\7\f\2\2!#\5\7\4\2"+
"\"!\3\2\2\2\"#\3\2\2\2#\'\3\2\2\2$%\5\r\7\2%&\6\3\2\2&(\3\2\2\2\'$\3\2"+
"\2\2()\3\2\2\2)\'\3\2\2\2)*\3\2\2\2*,\3\2\2\2+\"\3\2\2\2+,\3\2\2\2,J\3"+
"\2\2\2-.\7\17\2\2./\7\f\2\2/:\3\2\2\2\60\62\5\7\4\2\61\60\3\2\2\2\61\62"+
"\3\2\2\2\62\66\3\2\2\2\63\64\5\r\7\2\64\65\6\3\3\2\65\67\3\2\2\2\66\63"+
"\3\2\2\2\678\3\2\2\28\66\3\2\2\289\3\2\2\29;\3\2\2\2:\61\3\2\2\2:;\3\2"+
"\2\2;J\3\2\2\2<G\7\17\2\2=?\5\7\4\2>=\3\2\2\2>?\3\2\2\2?C\3\2\2\2@A\5"+
"\r\7\2AB\6\3\4\2BD\3\2\2\2C@\3\2\2\2DE\3\2\2\2EC\3\2\2\2EF\3\2\2\2FH\3"+
"\2\2\2G>\3\2\2\2GH\3\2\2\2HJ\3\2\2\2I \3\2\2\2I-\3\2\2\2I<\3\2\2\2J\6"+
"\3\2\2\2KM\t\3\2\2LK\3\2\2\2MN\3\2\2\2NL\3\2\2\2NO\3\2\2\2O\b\3\2\2\2"+
"PR\n\4\2\2QP\3\2\2\2RS\3\2\2\2SQ\3\2\2\2ST\3\2\2\2T\n\3\2\2\2UV\7B\2\2"+
"V\f\3\2\2\2WX\7,\2\2X\16\3\2\2\2YZ\7\61\2\2Z\20\3\2\2\2[\\\7\61\2\2\\"+
"]\7,\2\2]^\7,\2\2^b\3\2\2\2_a\5\r\7\2`_\3\2\2\2ad\3\2\2\2b`\3\2\2\2bc"+
"\3\2\2\2c\22\3\2\2\2db\3\2\2\2eg\5\7\4\2fe\3\2\2\2fg\3\2\2\2gk\3\2\2\2"+
"hj\5\r\7\2ih\3\2\2\2jm\3\2\2\2ki\3\2\2\2kl\3\2\2\2ln\3\2\2\2mk\3\2\2\2"+
"no\7,\2\2op\7\61\2\2p\24\3\2\2\2qr\7}\2\2rs\7B\2\2s\26\3\2\2\2tu\7}\2"+
"\2u\30\3\2\2\2vw\7\177\2\2w\32\3\2\2\2\23\2\36\")+\618:>EGINSbfk\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
File diff suppressed because it is too large Load Diff
@@ -6,349 +6,298 @@ import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
/**
* This class provides an empty implementation of {@link JavadocParserListener}, which can be
* extended to create a listener which only needs to handle a subset of the available methods.
* This class provides an empty implementation of {@link JavadocParserListener},
* which can be extended to create a listener which only needs to handle a subset
* of the available methods.
*/
public class JavadocParserBaseListener implements JavadocParserListener {
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDocumentation(JavadocParser.DocumentationContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDocumentation(JavadocParser.DocumentationContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescription(JavadocParser.DescriptionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescription(JavadocParser.DescriptionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineNoSpaceNoAt(
JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterTagSection(JavadocParser.TagSectionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitTagSection(JavadocParser.TagSectionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTag(JavadocParser.BlockTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTag(JavadocParser.BlockTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagName(JavadocParser.BlockTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagName(JavadocParser.BlockTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagText(JavadocParser.BlockTagTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagText(JavadocParser.BlockTagTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterInlineTag(JavadocParser.InlineTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitInlineTag(JavadocParser.InlineTagContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterInlineTagName(JavadocParser.InlineTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitInlineTagName(JavadocParser.InlineTagNameContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBraceExpression(JavadocParser.BraceExpressionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBraceExpression(JavadocParser.BraceExpressionContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBraceContent(JavadocParser.BraceContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBraceContent(JavadocParser.BraceContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterBraceText(JavadocParser.BraceTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitBraceText(JavadocParser.BraceTextContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDocumentation(JavadocParser.DocumentationContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDocumentation(JavadocParser.DocumentationContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescription(JavadocParser.DescriptionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescription(JavadocParser.DescriptionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterTagSection(JavadocParser.TagSectionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitTagSection(JavadocParser.TagSectionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlockTag(JavadocParser.BlockTagContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlockTag(JavadocParser.BlockTagContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlockTagName(JavadocParser.BlockTagNameContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlockTagName(JavadocParser.BlockTagNameContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlockTagText(JavadocParser.BlockTagTextContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlockTagText(JavadocParser.BlockTagTextContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterInlineTag(JavadocParser.InlineTagContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitInlineTag(JavadocParser.InlineTagContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterInlineTagName(JavadocParser.InlineTagNameContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitInlineTagName(JavadocParser.InlineTagNameContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBraceExpression(JavadocParser.BraceExpressionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBraceExpression(JavadocParser.BraceExpressionContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBraceContent(JavadocParser.BraceContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBraceContent(JavadocParser.BraceContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterBraceText(JavadocParser.BraceTextContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitBraceText(JavadocParser.BraceTextContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitTerminal(TerminalNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitErrorNode(ErrorNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterEveryRule(ParserRuleContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitEveryRule(ParserRuleContext ctx) {}
}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void visitTerminal(TerminalNode node) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void visitErrorNode(ErrorNode node) { }
}
@@ -1,235 +1,168 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
* This class provides an empty implementation of {@link JavadocParserVisitor}, which can be
* extended to create a visitor which only needs to handle a subset of the available methods.
* This class provides an empty implementation of {@link JavadocParserVisitor},
* which can be extended to create a visitor which only needs to handle a subset
* of the available methods.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
public class JavadocParserBaseVisitor<T> extends AbstractParseTreeVisitor<T>
implements JavadocParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDocumentation(JavadocParser.DocumentationContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescription(JavadocParser.DescriptionContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitTagSection(JavadocParser.TagSectionContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTag(JavadocParser.BlockTagContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagName(JavadocParser.BlockTagNameContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagText(JavadocParser.BlockTagTextContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitInlineTag(JavadocParser.InlineTagContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitInlineTagName(JavadocParser.InlineTagNameContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBraceExpression(JavadocParser.BraceExpressionContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBraceContent(JavadocParser.BraceContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitBraceText(JavadocParser.BraceTextContext ctx) {
return visitChildren(ctx);
}
}
public class JavadocParserBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements JavadocParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDocumentation(JavadocParser.DocumentationContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescription(JavadocParser.DescriptionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitTagSection(JavadocParser.TagSectionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlockTag(JavadocParser.BlockTagContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlockTagName(JavadocParser.BlockTagNameContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlockTagText(JavadocParser.BlockTagTextContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitInlineTag(JavadocParser.InlineTagContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitInlineTagName(JavadocParser.InlineTagNameContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBraceExpression(JavadocParser.BraceExpressionContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBraceContent(JavadocParser.BraceContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitBraceText(JavadocParser.BraceTextContext ctx) { return visitChildren(ctx); }
}
@@ -1,274 +1,230 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.tree.ParseTreeListener;
/**
* This interface defines a complete listener for a parse tree produced by {@link JavadocParser}.
* This interface defines a complete listener for a parse tree produced by
* {@link JavadocParser}.
*/
public interface JavadocParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by {@link JavadocParser#documentation}.
*
* @param ctx the parse tree
*/
void enterDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#documentation}.
*
* @param ctx the parse tree
*/
void exitDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#documentationContent}.
*
* @param ctx the parse tree
*/
void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#documentationContent}.
*
* @param ctx the parse tree
*/
void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#skipWhitespace}.
*
* @param ctx the parse tree
*/
void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#skipWhitespace}.
*
* @param ctx the parse tree
*/
void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#description}.
*
* @param ctx the parse tree
*/
void enterDescription(JavadocParser.DescriptionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#description}.
*
* @param ctx the parse tree
*/
void exitDescription(JavadocParser.DescriptionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLine}.
*
* @param ctx the parse tree
*/
void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLine}.
*
* @param ctx the parse tree
*/
void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineStart}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineStart}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineElement}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineElement}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineText}.
*
* @param ctx the parse tree
*/
void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineText}.
*
* @param ctx the parse tree
*/
void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionNewline}.
*
* @param ctx the parse tree
*/
void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionNewline}.
*
* @param ctx the parse tree
*/
void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#tagSection}.
*
* @param ctx the parse tree
*/
void enterTagSection(JavadocParser.TagSectionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#tagSection}.
*
* @param ctx the parse tree
*/
void exitTagSection(JavadocParser.TagSectionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTag}.
*
* @param ctx the parse tree
*/
void enterBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTag}.
*
* @param ctx the parse tree
*/
void exitBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagName}.
*
* @param ctx the parse tree
*/
void enterBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagName}.
*
* @param ctx the parse tree
*/
void exitBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagContent}.
*
* @param ctx the parse tree
*/
void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagContent}.
*
* @param ctx the parse tree
*/
void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagText}.
*
* @param ctx the parse tree
*/
void enterBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagText}.
*
* @param ctx the parse tree
*/
void exitBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagTextElement}.
*
* @param ctx the parse tree
*/
void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagTextElement}.
*
* @param ctx the parse tree
*/
void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTag}.
*
* @param ctx the parse tree
*/
void enterInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTag}.
*
* @param ctx the parse tree
*/
void exitInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTagName}.
*
* @param ctx the parse tree
*/
void enterInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTagName}.
*
* @param ctx the parse tree
*/
void exitInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTagContent}.
*
* @param ctx the parse tree
*/
void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTagContent}.
*
* @param ctx the parse tree
*/
void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceExpression}.
*
* @param ctx the parse tree
*/
void enterBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceExpression}.
*
* @param ctx the parse tree
*/
void exitBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceContent}.
*
* @param ctx the parse tree
*/
void enterBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceContent}.
*
* @param ctx the parse tree
*/
void exitBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceText}.
*
* @param ctx the parse tree
*/
void enterBraceText(JavadocParser.BraceTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceText}.
*
* @param ctx the parse tree
*/
void exitBraceText(JavadocParser.BraceTextContext ctx);
}
/**
* Enter a parse tree produced by {@link JavadocParser#documentation}.
* @param ctx the parse tree
*/
void enterDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#documentation}.
* @param ctx the parse tree
*/
void exitDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#documentationContent}.
* @param ctx the parse tree
*/
void enterDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#documentationContent}.
* @param ctx the parse tree
*/
void exitDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#skipWhitespace}.
* @param ctx the parse tree
*/
void enterSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#skipWhitespace}.
* @param ctx the parse tree
*/
void exitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#description}.
* @param ctx the parse tree
*/
void enterDescription(JavadocParser.DescriptionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#description}.
* @param ctx the parse tree
*/
void exitDescription(JavadocParser.DescriptionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLine}.
* @param ctx the parse tree
*/
void enterDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLine}.
* @param ctx the parse tree
*/
void exitDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineStart}.
* @param ctx the parse tree
*/
void enterDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineStart}.
* @param ctx the parse tree
*/
void exitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
* @param ctx the parse tree
*/
void enterDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
* @param ctx the parse tree
*/
void exitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineElement}.
* @param ctx the parse tree
*/
void enterDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineElement}.
* @param ctx the parse tree
*/
void exitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionLineText}.
* @param ctx the parse tree
*/
void enterDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionLineText}.
* @param ctx the parse tree
*/
void exitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#descriptionNewline}.
* @param ctx the parse tree
*/
void enterDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#descriptionNewline}.
* @param ctx the parse tree
*/
void exitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#tagSection}.
* @param ctx the parse tree
*/
void enterTagSection(JavadocParser.TagSectionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#tagSection}.
* @param ctx the parse tree
*/
void exitTagSection(JavadocParser.TagSectionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTag}.
* @param ctx the parse tree
*/
void enterBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTag}.
* @param ctx the parse tree
*/
void exitBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagName}.
* @param ctx the parse tree
*/
void enterBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagName}.
* @param ctx the parse tree
*/
void exitBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagContent}.
* @param ctx the parse tree
*/
void enterBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagContent}.
* @param ctx the parse tree
*/
void exitBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagText}.
* @param ctx the parse tree
*/
void enterBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagText}.
* @param ctx the parse tree
*/
void exitBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#blockTagTextElement}.
* @param ctx the parse tree
*/
void enterBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#blockTagTextElement}.
* @param ctx the parse tree
*/
void exitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTag}.
* @param ctx the parse tree
*/
void enterInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTag}.
* @param ctx the parse tree
*/
void exitInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTagName}.
* @param ctx the parse tree
*/
void enterInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTagName}.
* @param ctx the parse tree
*/
void exitInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#inlineTagContent}.
* @param ctx the parse tree
*/
void enterInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#inlineTagContent}.
* @param ctx the parse tree
*/
void exitInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceExpression}.
* @param ctx the parse tree
*/
void enterBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceExpression}.
* @param ctx the parse tree
*/
void exitBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceContent}.
* @param ctx the parse tree
*/
void enterBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceContent}.
* @param ctx the parse tree
*/
void exitBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Enter a parse tree produced by {@link JavadocParser#braceText}.
* @param ctx the parse tree
*/
void enterBraceText(JavadocParser.BraceTextContext ctx);
/**
* Exit a parse tree produced by {@link JavadocParser#braceText}.
* @param ctx the parse tree
*/
void exitBraceText(JavadocParser.BraceTextContext ctx);
}
@@ -1,168 +1,145 @@
// Generated from JavadocParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.javadoc;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced by {@link
* JavadocParser}.
* This interface defines a complete generic visitor for a parse tree produced
* by {@link JavadocParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
public interface JavadocParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link JavadocParser#documentation}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#documentationContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#skipWhitespace}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#description}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescription(JavadocParser.DescriptionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLine}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineStart}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineText}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionNewline}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#tagSection}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitTagSection(JavadocParser.TagSectionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTag}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagText}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagTextElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTag}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTagName}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTagContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceExpression}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceContent}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceText}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceText(JavadocParser.BraceTextContext ctx);
}
/**
* Visit a parse tree produced by {@link JavadocParser#documentation}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocumentation(JavadocParser.DocumentationContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#documentationContent}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#skipWhitespace}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#description}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescription(JavadocParser.DescriptionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLine}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineStart}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineNoSpaceNoAt}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineElement}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionLineText}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#descriptionNewline}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#tagSection}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitTagSection(JavadocParser.TagSectionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTag}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTag(JavadocParser.BlockTagContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagName}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagName(JavadocParser.BlockTagNameContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagContent}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagText}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagText(JavadocParser.BlockTagTextContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#blockTagTextElement}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTag}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTag(JavadocParser.InlineTagContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTagName}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTagName(JavadocParser.InlineTagNameContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#inlineTagContent}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceExpression}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceExpression(JavadocParser.BraceExpressionContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceContent}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceContent(JavadocParser.BraceContentContext ctx);
/**
* Visit a parse tree produced by {@link JavadocParser#braceText}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitBraceText(JavadocParser.BraceTextContext ctx);
}
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,406 +1,384 @@
// Generated from UnicodeClasses.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.kotlin;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class UnicodeClasses extends Lexer {
public static final int UNICODE_CLASS_LL = 1,
UNICODE_CLASS_LM = 2,
UNICODE_CLASS_LO = 3,
UNICODE_CLASS_LT = 4,
UNICODE_CLASS_LU = 5,
UNICODE_CLASS_ND = 6,
UNICODE_CLASS_NL = 7;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\t\37\b\1\4\2\t\2"
+ "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\3\2\3\2\3\3\3\3\3\4\3"
+ "\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\2\2\t\3\3\5\4\7\5\t\6\13\7\r\b\17\t"
+ "\3\2\t\u0248\2c|\u00b7\u00b7\u00e1\u00f8\u00fa\u0101\u0103\u0103\u0105"
+ "\u0105\u0107\u0107\u0109\u0109\u010b\u010b\u010d\u010d\u010f\u010f\u0111"
+ "\u0111\u0113\u0113\u0115\u0115\u0117\u0117\u0119\u0119\u011b\u011b\u011d"
+ "\u011d\u011f\u011f\u0121\u0121\u0123\u0123\u0125\u0125\u0127\u0127\u0129"
+ "\u0129\u012b\u012b\u012d\u012d\u012f\u012f\u0131\u0131\u0133\u0133\u0135"
+ "\u0135\u0137\u0137\u0139\u013a\u013c\u013c\u013e\u013e\u0140\u0140\u0142"
+ "\u0142\u0144\u0144\u0146\u0146\u0148\u0148\u014a\u014b\u014d\u014d\u014f"
+ "\u014f\u0151\u0151\u0153\u0153\u0155\u0155\u0157\u0157\u0159\u0159\u015b"
+ "\u015b\u015d\u015d\u015f\u015f\u0161\u0161\u0163\u0163\u0165\u0165\u0167"
+ "\u0167\u0169\u0169\u016b\u016b\u016d\u016d\u016f\u016f\u0171\u0171\u0173"
+ "\u0173\u0175\u0175\u0177\u0177\u0179\u0179\u017c\u017c\u017e\u017e\u0180"
+ "\u0182\u0185\u0185\u0187\u0187\u018a\u018a\u018e\u018f\u0194\u0194\u0197"
+ "\u0197\u019b\u019d\u01a0\u01a0\u01a3\u01a3\u01a5\u01a5\u01a7\u01a7\u01aa"
+ "\u01aa\u01ac\u01ad\u01af\u01af\u01b2\u01b2\u01b6\u01b6\u01b8\u01b8\u01bb"
+ "\u01bc\u01bf\u01c1\u01c8\u01c8\u01cb\u01cb\u01ce\u01ce\u01d0\u01d0\u01d2"
+ "\u01d2\u01d4\u01d4\u01d6\u01d6\u01d8\u01d8\u01da\u01da\u01dc\u01dc\u01de"
+ "\u01df\u01e1\u01e1\u01e3\u01e3\u01e5\u01e5\u01e7\u01e7\u01e9\u01e9\u01eb"
+ "\u01eb\u01ed\u01ed\u01ef\u01ef\u01f1\u01f2\u01f5\u01f5\u01f7\u01f7\u01fb"
+ "\u01fb\u01fd\u01fd\u01ff\u01ff\u0201\u0201\u0203\u0203\u0205\u0205\u0207"
+ "\u0207\u0209\u0209\u020b\u020b\u020d\u020d\u020f\u020f\u0211\u0211\u0213"
+ "\u0213\u0215\u0215\u0217\u0217\u0219\u0219\u021b\u021b\u021d\u021d\u021f"
+ "\u021f\u0221\u0221\u0223\u0223\u0225\u0225\u0227\u0227\u0229\u0229\u022b"
+ "\u022b\u022d\u022d\u022f\u022f\u0231\u0231\u0233\u0233\u0235\u023b\u023e"
+ "\u023e\u0241\u0242\u0244\u0244\u0249\u0249\u024b\u024b\u024d\u024d\u024f"
+ "\u024f\u0251\u0295\u0297\u02b1\u0373\u0373\u0375\u0375\u0379\u0379\u037d"
+ "\u037f\u0392\u0392\u03ae\u03d0\u03d2\u03d3\u03d7\u03d9\u03db\u03db\u03dd"
+ "\u03dd\u03df\u03df\u03e1\u03e1\u03e3\u03e3\u03e5\u03e5\u03e7\u03e7\u03e9"
+ "\u03e9\u03eb\u03eb\u03ed\u03ed\u03ef\u03ef\u03f1\u03f5\u03f7\u03f7\u03fa"
+ "\u03fa\u03fd\u03fe\u0432\u0461\u0463\u0463\u0465\u0465\u0467\u0467\u0469"
+ "\u0469\u046b\u046b\u046d\u046d\u046f\u046f\u0471\u0471\u0473\u0473\u0475"
+ "\u0475\u0477\u0477\u0479\u0479\u047b\u047b\u047d\u047d\u047f\u047f\u0481"
+ "\u0481\u0483\u0483\u048d\u048d\u048f\u048f\u0491\u0491\u0493\u0493\u0495"
+ "\u0495\u0497\u0497\u0499\u0499\u049b\u049b\u049d\u049d\u049f\u049f\u04a1"
+ "\u04a1\u04a3\u04a3\u04a5\u04a5\u04a7\u04a7\u04a9\u04a9\u04ab\u04ab\u04ad"
+ "\u04ad\u04af\u04af\u04b1\u04b1\u04b3\u04b3\u04b5\u04b5\u04b7\u04b7\u04b9"
+ "\u04b9\u04bb\u04bb\u04bd\u04bd\u04bf\u04bf\u04c1\u04c1\u04c4\u04c4\u04c6"
+ "\u04c6\u04c8\u04c8\u04ca\u04ca\u04cc\u04cc\u04ce\u04ce\u04d0\u04d1\u04d3"
+ "\u04d3\u04d5\u04d5\u04d7\u04d7\u04d9\u04d9\u04db\u04db\u04dd\u04dd\u04df"
+ "\u04df\u04e1\u04e1\u04e3\u04e3\u04e5\u04e5\u04e7\u04e7\u04e9\u04e9\u04eb"
+ "\u04eb\u04ed\u04ed\u04ef\u04ef\u04f1\u04f1\u04f3\u04f3\u04f5\u04f5\u04f7"
+ "\u04f7\u04f9\u04f9\u04fb\u04fb\u04fd\u04fd\u04ff\u04ff\u0501\u0501\u0503"
+ "\u0503\u0505\u0505\u0507\u0507\u0509\u0509\u050b\u050b\u050d\u050d\u050f"
+ "\u050f\u0511\u0511\u0513\u0513\u0515\u0515\u0517\u0517\u0519\u0519\u051b"
+ "\u051b\u051d\u051d\u051f\u051f\u0521\u0521\u0523\u0523\u0525\u0525\u0527"
+ "\u0527\u0529\u0529\u0563\u0589\u1d02\u1d2d\u1d6d\u1d79\u1d7b\u1d9c\u1e03"
+ "\u1e03\u1e05\u1e05\u1e07\u1e07\u1e09\u1e09\u1e0b\u1e0b\u1e0d\u1e0d\u1e0f"
+ "\u1e0f\u1e11\u1e11\u1e13\u1e13\u1e15\u1e15\u1e17\u1e17\u1e19\u1e19\u1e1b"
+ "\u1e1b\u1e1d\u1e1d\u1e1f\u1e1f\u1e21\u1e21\u1e23\u1e23\u1e25\u1e25\u1e27"
+ "\u1e27\u1e29\u1e29\u1e2b\u1e2b\u1e2d\u1e2d\u1e2f\u1e2f\u1e31\u1e31\u1e33"
+ "\u1e33\u1e35\u1e35\u1e37\u1e37\u1e39\u1e39\u1e3b\u1e3b\u1e3d\u1e3d\u1e3f"
+ "\u1e3f\u1e41\u1e41\u1e43\u1e43\u1e45\u1e45\u1e47\u1e47\u1e49\u1e49\u1e4b"
+ "\u1e4b\u1e4d\u1e4d\u1e4f\u1e4f\u1e51\u1e51\u1e53\u1e53\u1e55\u1e55\u1e57"
+ "\u1e57\u1e59\u1e59\u1e5b\u1e5b\u1e5d\u1e5d\u1e5f\u1e5f\u1e61\u1e61\u1e63"
+ "\u1e63\u1e65\u1e65\u1e67\u1e67\u1e69\u1e69\u1e6b\u1e6b\u1e6d\u1e6d\u1e6f"
+ "\u1e6f\u1e71\u1e71\u1e73\u1e73\u1e75\u1e75\u1e77\u1e77\u1e79\u1e79\u1e7b"
+ "\u1e7b\u1e7d\u1e7d\u1e7f\u1e7f\u1e81\u1e81\u1e83\u1e83\u1e85\u1e85\u1e87"
+ "\u1e87\u1e89\u1e89\u1e8b\u1e8b\u1e8d\u1e8d\u1e8f\u1e8f\u1e91\u1e91\u1e93"
+ "\u1e93\u1e95\u1e95\u1e97\u1e9f\u1ea1\u1ea1\u1ea3\u1ea3\u1ea5\u1ea5\u1ea7"
+ "\u1ea7\u1ea9\u1ea9\u1eab\u1eab\u1ead\u1ead\u1eaf\u1eaf\u1eb1\u1eb1\u1eb3"
+ "\u1eb3\u1eb5\u1eb5\u1eb7\u1eb7\u1eb9\u1eb9\u1ebb\u1ebb\u1ebd\u1ebd\u1ebf"
+ "\u1ebf\u1ec1\u1ec1\u1ec3\u1ec3\u1ec5\u1ec5\u1ec7\u1ec7\u1ec9\u1ec9\u1ecb"
+ "\u1ecb\u1ecd\u1ecd\u1ecf\u1ecf\u1ed1\u1ed1\u1ed3\u1ed3\u1ed5\u1ed5\u1ed7"
+ "\u1ed7\u1ed9\u1ed9\u1edb\u1edb\u1edd\u1edd\u1edf\u1edf\u1ee1\u1ee1\u1ee3"
+ "\u1ee3\u1ee5\u1ee5\u1ee7\u1ee7\u1ee9\u1ee9\u1eeb\u1eeb\u1eed\u1eed\u1eef"
+ "\u1eef\u1ef1\u1ef1\u1ef3\u1ef3\u1ef5\u1ef5\u1ef7\u1ef7\u1ef9\u1ef9\u1efb"
+ "\u1efb\u1efd\u1efd\u1eff\u1eff\u1f01\u1f09\u1f12\u1f17\u1f22\u1f29\u1f32"
+ "\u1f39\u1f42\u1f47\u1f52\u1f59\u1f62\u1f69\u1f72\u1f7f\u1f82\u1f89\u1f92"
+ "\u1f99\u1fa2\u1fa9\u1fb2\u1fb6\u1fb8\u1fb9\u1fc0\u1fc0\u1fc4\u1fc6\u1fc8"
+ "\u1fc9\u1fd2\u1fd5\u1fd8\u1fd9\u1fe2\u1fe9\u1ff4\u1ff6\u1ff8\u1ff9\u210c"
+ "\u210c\u2110\u2111\u2115\u2115\u2131\u2131\u2136\u2136\u213b\u213b\u213e"
+ "\u213f\u2148\u214b\u2150\u2150\u2186\u2186\u2c32\u2c60\u2c63\u2c63\u2c67"
+ "\u2c68\u2c6a\u2c6a\u2c6c\u2c6c\u2c6e\u2c6e\u2c73\u2c73\u2c75\u2c76\u2c78"
+ "\u2c7d\u2c83\u2c83\u2c85\u2c85\u2c87\u2c87\u2c89\u2c89\u2c8b\u2c8b\u2c8d"
+ "\u2c8d\u2c8f\u2c8f\u2c91\u2c91\u2c93\u2c93\u2c95\u2c95\u2c97\u2c97\u2c99"
+ "\u2c99\u2c9b\u2c9b\u2c9d\u2c9d\u2c9f\u2c9f\u2ca1\u2ca1\u2ca3\u2ca3\u2ca5"
+ "\u2ca5\u2ca7\u2ca7\u2ca9\u2ca9\u2cab\u2cab\u2cad\u2cad\u2caf\u2caf\u2cb1"
+ "\u2cb1\u2cb3\u2cb3\u2cb5\u2cb5\u2cb7\u2cb7\u2cb9\u2cb9\u2cbb\u2cbb\u2cbd"
+ "\u2cbd\u2cbf\u2cbf\u2cc1\u2cc1\u2cc3\u2cc3\u2cc5\u2cc5\u2cc7\u2cc7\u2cc9"
+ "\u2cc9\u2ccb\u2ccb\u2ccd\u2ccd\u2ccf\u2ccf\u2cd1\u2cd1\u2cd3\u2cd3\u2cd5"
+ "\u2cd5\u2cd7\u2cd7\u2cd9\u2cd9\u2cdb\u2cdb\u2cdd\u2cdd\u2cdf\u2cdf\u2ce1"
+ "\u2ce1\u2ce3\u2ce3\u2ce5\u2ce6\u2cee\u2cee\u2cf0\u2cf0\u2cf5\u2cf5\u2d02"
+ "\u2d27\u2d29\u2d29\u2d2f\u2d2f\ua643\ua643\ua645\ua645\ua647\ua647\ua649"
+ "\ua649\ua64b\ua64b\ua64d\ua64d\ua64f\ua64f\ua651\ua651\ua653\ua653\ua655"
+ "\ua655\ua657\ua657\ua659\ua659\ua65b\ua65b\ua65d\ua65d\ua65f\ua65f\ua661"
+ "\ua661\ua663\ua663\ua665\ua665\ua667\ua667\ua669\ua669\ua66b\ua66b\ua66d"
+ "\ua66d\ua66f\ua66f\ua683\ua683\ua685\ua685\ua687\ua687\ua689\ua689\ua68b"
+ "\ua68b\ua68d\ua68d\ua68f\ua68f\ua691\ua691\ua693\ua693\ua695\ua695\ua697"
+ "\ua697\ua699\ua699\ua725\ua725\ua727\ua727\ua729\ua729\ua72b\ua72b\ua72d"
+ "\ua72d\ua72f\ua72f\ua731\ua733\ua735\ua735\ua737\ua737\ua739\ua739\ua73b"
+ "\ua73b\ua73d\ua73d\ua73f\ua73f\ua741\ua741\ua743\ua743\ua745\ua745\ua747"
+ "\ua747\ua749\ua749\ua74b\ua74b\ua74d\ua74d\ua74f\ua74f\ua751\ua751\ua753"
+ "\ua753\ua755\ua755\ua757\ua757\ua759\ua759\ua75b\ua75b\ua75d\ua75d\ua75f"
+ "\ua75f\ua761\ua761\ua763\ua763\ua765\ua765\ua767\ua767\ua769\ua769\ua76b"
+ "\ua76b\ua76d\ua76d\ua76f\ua76f\ua771\ua771\ua773\ua77a\ua77c\ua77c\ua77e"
+ "\ua77e\ua781\ua781\ua783\ua783\ua785\ua785\ua787\ua787\ua789\ua789\ua78e"
+ "\ua78e\ua790\ua790\ua793\ua793\ua795\ua795\ua7a3\ua7a3\ua7a5\ua7a5\ua7a7"
+ "\ua7a7\ua7a9\ua7a9\ua7ab\ua7ab\ua7fc\ua7fc\ufb02\ufb08\ufb15\ufb19\uff43"
+ "\uff5c\65\2\u02b2\u02c3\u02c8\u02d3\u02e2\u02e6\u02ee\u02ee\u02f0\u02f0"
+ "\u0376\u0376\u037c\u037c\u055b\u055b\u0642\u0642\u06e7\u06e8\u07f6\u07f7"
+ "\u07fc\u07fc\u081c\u081c\u0826\u0826\u082a\u082a\u0973\u0973\u0e48\u0e48"
+ "\u0ec8\u0ec8\u10fe\u10fe\u17d9\u17d9\u1845\u1845\u1aa9\u1aa9\u1c7a\u1c7f"
+ "\u1d2e\u1d6c\u1d7a\u1d7a\u1d9d\u1dc1\u2073\u2073\u2081\u2081\u2092\u209e"
+ "\u2c7e\u2c7f\u2d71\u2d71\u2e31\u2e31\u3007\u3007\u3033\u3037\u303d\u303d"
+ "\u309f\u30a0\u30fe\u3100\ua017\ua017\ua4fa\ua4ff\ua60e\ua60e\ua681\ua681"
+ "\ua719\ua721\ua772\ua772\ua78a\ua78a\ua7fa\ua7fb\ua9d1\ua9d1\uaa72\uaa72"
+ "\uaadf\uaadf\uaaf5\uaaf6\uff72\uff72\uffa0\uffa1\u0123\2\u00ac\u00ac\u00bc"
+ "\u00bc\u01bd\u01bd\u01c2\u01c5\u0296\u0296\u05d2\u05ec\u05f2\u05f4\u0622"
+ "\u0641\u0643\u064c\u0670\u0671\u0673\u06d5\u06d7\u06d7\u06f0\u06f1\u06fc"
+ "\u06fe\u0701\u0701\u0712\u0712\u0714\u0731\u074f\u07a7\u07b3\u07b3\u07cc"
+ "\u07ec\u0802\u0817\u0842\u085a\u08a2\u08a2\u08a4\u08ae\u0906\u093b\u093f"
+ "\u093f\u0952\u0952\u095a\u0963\u0974\u0979\u097b\u0981\u0987\u098e\u0991"
+ "\u0992\u0995\u09aa\u09ac\u09b2\u09b4\u09b4\u09b8\u09bb\u09bf\u09bf\u09d0"
+ "\u09d0\u09de\u09df\u09e1\u09e3\u09f2\u09f3\u0a07\u0a0c\u0a11\u0a12\u0a15"
+ "\u0a2a\u0a2c\u0a32\u0a34\u0a35\u0a37\u0a38\u0a3a\u0a3b\u0a5b\u0a5e\u0a60"
+ "\u0a60\u0a74\u0a76\u0a87\u0a8f\u0a91\u0a93\u0a95\u0aaa\u0aac\u0ab2\u0ab4"
+ "\u0ab5\u0ab7\u0abb\u0abf\u0abf\u0ad2\u0ad2\u0ae2\u0ae3\u0b07\u0b0e\u0b11"
+ "\u0b12\u0b15\u0b2a\u0b2c\u0b32\u0b34\u0b35\u0b37\u0b3b\u0b3f\u0b3f\u0b5e"
+ "\u0b5f\u0b61\u0b63\u0b73\u0b73\u0b85\u0b85\u0b87\u0b8c\u0b90\u0b92\u0b94"
+ "\u0b97\u0b9b\u0b9c\u0b9e\u0b9e\u0ba0\u0ba1\u0ba5\u0ba6\u0baa\u0bac\u0bb0"
+ "\u0bbb\u0bd2\u0bd2\u0c07\u0c0e\u0c10\u0c12\u0c14\u0c2a\u0c2c\u0c35\u0c37"
+ "\u0c3b\u0c3f\u0c3f\u0c5a\u0c5b\u0c62\u0c63\u0c87\u0c8e\u0c90\u0c92\u0c94"
+ "\u0caa\u0cac\u0cb5\u0cb7\u0cbb\u0cbf\u0cbf\u0ce0\u0ce0\u0ce2\u0ce3\u0cf3"
+ "\u0cf4\u0d07\u0d0e\u0d10\u0d12\u0d14\u0d3c\u0d3f\u0d3f\u0d50\u0d50\u0d62"
+ "\u0d63\u0d7c\u0d81\u0d87\u0d98\u0d9c\u0db3\u0db5\u0dbd\u0dbf\u0dbf\u0dc2"
+ "\u0dc8\u0e03\u0e32\u0e34\u0e35\u0e42\u0e47\u0e83\u0e84\u0e86\u0e86\u0e89"
+ "\u0e8a\u0e8c\u0e8c\u0e8f\u0e8f\u0e96\u0e99\u0e9b\u0ea1\u0ea3\u0ea5\u0ea7"
+ "\u0ea7\u0ea9\u0ea9\u0eac\u0ead\u0eaf\u0eb2\u0eb4\u0eb5\u0ebf\u0ebf\u0ec2"
+ "\u0ec6\u0ede\u0ee1\u0f02\u0f02\u0f42\u0f49\u0f4b\u0f6e\u0f8a\u0f8e\u1002"
+ "\u102c\u1041\u1041\u1052\u1057\u105c\u105f\u1063\u1063\u1067\u1068\u1070"
+ "\u1072\u1077\u1083\u1090\u1090\u10d2\u10fc\u10ff\u124a\u124c\u124f\u1252"
+ "\u1258\u125a\u125a\u125c\u125f\u1262\u128a\u128c\u128f\u1292\u12b2\u12b4"
+ "\u12b7\u12ba\u12c0\u12c2\u12c2\u12c4\u12c7\u12ca\u12d8\u12da\u1312\u1314"
+ "\u1317\u131a\u135c\u1382\u1391\u13a2\u13f6\u1403\u166e\u1671\u1681\u1683"
+ "\u169c\u16a2\u16ec\u1702\u170e\u1710\u1713\u1722\u1733\u1742\u1753\u1762"
+ "\u176e\u1770\u1772\u1782\u17b5\u17de\u17de\u1822\u1844\u1846\u1879\u1882"
+ "\u18aa\u18ac\u18ac\u18b2\u18f7\u1902\u191e\u1952\u196f\u1972\u1976\u1982"
+ "\u19ad\u19c3\u19c9\u1a02\u1a18\u1a22\u1a56\u1b07\u1b35\u1b47\u1b4d\u1b85"
+ "\u1ba2\u1bb0\u1bb1\u1bbc\u1be7\u1c02\u1c25\u1c4f\u1c51\u1c5c\u1c79\u1ceb"
+ "\u1cee\u1cf0\u1cf3\u1cf7\u1cf8\u2137\u213a\u2d32\u2d69\u2d82\u2d98\u2da2"
+ "\u2da8\u2daa\u2db0\u2db2\u2db8\u2dba\u2dc0\u2dc2\u2dc8\u2dca\u2dd0\u2dd2"
+ "\u2dd8\u2dda\u2de0\u3008\u3008\u303e\u303e\u3043\u3098\u30a1\u30a1\u30a3"
+ "\u30fc\u3101\u3101\u3107\u312f\u3133\u3190\u31a2\u31bc\u31f2\u3201\u3402"
+ "\u3402\u4db7\u4db7\u4e02\u4e02\u9fce\u9fce\ua002\ua016\ua018\ua48e\ua4d2"
+ "\ua4f9\ua502\ua60d\ua612\ua621\ua62c\ua62d\ua670\ua670\ua6a2\ua6e7\ua7fd"
+ "\ua803\ua805\ua807\ua809\ua80c\ua80e\ua824\ua842\ua875\ua884\ua8b5\ua8f4"
+ "\ua8f9\ua8fd\ua8fd\ua90c\ua927\ua932\ua948\ua962\ua97e\ua986\ua9b4\uaa02"
+ "\uaa2a\uaa42\uaa44\uaa46\uaa4d\uaa62\uaa71\uaa73\uaa78\uaa7c\uaa7c\uaa82"
+ "\uaab1\uaab3\uaab3\uaab7\uaab8\uaabb\uaabf\uaac2\uaac2\uaac4\uaac4\uaadd"
+ "\uaade\uaae2\uaaec\uaaf4\uaaf4\uab03\uab08\uab0b\uab10\uab13\uab18\uab22"
+ "\uab28\uab2a\uab30\uabc2\uabe4\uac02\uac02\ud7a5\ud7a5\ud7b2\ud7c8\ud7cd"
+ "\ud7fd\uf902\ufa6f\ufa72\ufadb\ufb1f\ufb1f\ufb21\ufb2a\ufb2c\ufb38\ufb3a"
+ "\ufb3e\ufb40\ufb40\ufb42\ufb43\ufb45\ufb46\ufb48\ufbb3\ufbd5\ufd3f\ufd52"
+ "\ufd91\ufd94\ufdc9\ufdf2\ufdfd\ufe72\ufe76\ufe78\ufefe\uff68\uff71\uff73"
+ "\uff9f\uffa2\uffc0\uffc4\uffc9\uffcc\uffd1\uffd4\uffd9\uffdc\uffde\f\2"
+ "\u01c7\u01c7\u01ca\u01ca\u01cd\u01cd\u01f4\u01f4\u1f8a\u1f91\u1f9a\u1fa1"
+ "\u1faa\u1fb1\u1fbe\u1fbe\u1fce\u1fce\u1ffe\u1ffe\u0242\2C\\\u00c2\u00d8"
+ "\u00da\u00e0\u0102\u0102\u0104\u0104\u0106\u0106\u0108\u0108\u010a\u010a"
+ "\u010c\u010c\u010e\u010e\u0110\u0110\u0112\u0112\u0114\u0114\u0116\u0116"
+ "\u0118\u0118\u011a\u011a\u011c\u011c\u011e\u011e\u0120\u0120\u0122\u0122"
+ "\u0124\u0124\u0126\u0126\u0128\u0128\u012a\u012a\u012c\u012c\u012e\u012e"
+ "\u0130\u0130\u0132\u0132\u0134\u0134\u0136\u0136\u0138\u0138\u013b\u013b"
+ "\u013d\u013d\u013f\u013f\u0141\u0141\u0143\u0143\u0145\u0145\u0147\u0147"
+ "\u0149\u0149\u014c\u014c\u014e\u014e\u0150\u0150\u0152\u0152\u0154\u0154"
+ "\u0156\u0156\u0158\u0158\u015a\u015a\u015c\u015c\u015e\u015e\u0160\u0160"
+ "\u0162\u0162\u0164\u0164\u0166\u0166\u0168\u0168\u016a\u016a\u016c\u016c"
+ "\u016e\u016e\u0170\u0170\u0172\u0172\u0174\u0174\u0176\u0176\u0178\u0178"
+ "\u017a\u017b\u017d\u017d\u017f\u017f\u0183\u0184\u0186\u0186\u0188\u0189"
+ "\u018b\u018d\u0190\u0193\u0195\u0196\u0198\u019a\u019e\u019f\u01a1\u01a2"
+ "\u01a4\u01a4\u01a6\u01a6\u01a8\u01a9\u01ab\u01ab\u01ae\u01ae\u01b0\u01b1"
+ "\u01b3\u01b5\u01b7\u01b7\u01b9\u01ba\u01be\u01be\u01c6\u01c6\u01c9\u01c9"
+ "\u01cc\u01cc\u01cf\u01cf\u01d1\u01d1\u01d3\u01d3\u01d5\u01d5\u01d7\u01d7"
+ "\u01d9\u01d9\u01db\u01db\u01dd\u01dd\u01e0\u01e0\u01e2\u01e2\u01e4\u01e4"
+ "\u01e6\u01e6\u01e8\u01e8\u01ea\u01ea\u01ec\u01ec\u01ee\u01ee\u01f0\u01f0"
+ "\u01f3\u01f3\u01f6\u01f6\u01f8\u01fa\u01fc\u01fc\u01fe\u01fe\u0200\u0200"
+ "\u0202\u0202\u0204\u0204\u0206\u0206\u0208\u0208\u020a\u020a\u020c\u020c"
+ "\u020e\u020e\u0210\u0210\u0212\u0212\u0214\u0214\u0216\u0216\u0218\u0218"
+ "\u021a\u021a\u021c\u021c\u021e\u021e\u0220\u0220\u0222\u0222\u0224\u0224"
+ "\u0226\u0226\u0228\u0228\u022a\u022a\u022c\u022c\u022e\u022e\u0230\u0230"
+ "\u0232\u0232\u0234\u0234\u023c\u023d\u023f\u0240\u0243\u0243\u0245\u0248"
+ "\u024a\u024a\u024c\u024c\u024e\u024e\u0250\u0250\u0372\u0372\u0374\u0374"
+ "\u0378\u0378\u0388\u0388\u038a\u038c\u038e\u038e\u0390\u0391\u0393\u03a3"
+ "\u03a5\u03ad\u03d1\u03d1\u03d4\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de"
+ "\u03e0\u03e0\u03e2\u03e2\u03e4\u03e4\u03e6\u03e6\u03e8\u03e8\u03ea\u03ea"
+ "\u03ec\u03ec\u03ee\u03ee\u03f0\u03f0\u03f6\u03f6\u03f9\u03f9\u03fb\u03fc"
+ "\u03ff\u0431\u0462\u0462\u0464\u0464\u0466\u0466\u0468\u0468\u046a\u046a"
+ "\u046c\u046c\u046e\u046e\u0470\u0470\u0472\u0472\u0474\u0474\u0476\u0476"
+ "\u0478\u0478\u047a\u047a\u047c\u047c\u047e\u047e\u0480\u0480\u0482\u0482"
+ "\u048c\u048c\u048e\u048e\u0490\u0490\u0492\u0492\u0494\u0494\u0496\u0496"
+ "\u0498\u0498\u049a\u049a\u049c\u049c\u049e\u049e\u04a0\u04a0\u04a2\u04a2"
+ "\u04a4\u04a4\u04a6\u04a6\u04a8\u04a8\u04aa\u04aa\u04ac\u04ac\u04ae\u04ae"
+ "\u04b0\u04b0\u04b2\u04b2\u04b4\u04b4\u04b6\u04b6\u04b8\u04b8\u04ba\u04ba"
+ "\u04bc\u04bc\u04be\u04be\u04c0\u04c0\u04c2\u04c3\u04c5\u04c5\u04c7\u04c7"
+ "\u04c9\u04c9\u04cb\u04cb\u04cd\u04cd\u04cf\u04cf\u04d2\u04d2\u04d4\u04d4"
+ "\u04d6\u04d6\u04d8\u04d8\u04da\u04da\u04dc\u04dc\u04de\u04de\u04e0\u04e0"
+ "\u04e2\u04e2\u04e4\u04e4\u04e6\u04e6\u04e8\u04e8\u04ea\u04ea\u04ec\u04ec"
+ "\u04ee\u04ee\u04f0\u04f0\u04f2\u04f2\u04f4\u04f4\u04f6\u04f6\u04f8\u04f8"
+ "\u04fa\u04fa\u04fc\u04fc\u04fe\u04fe\u0500\u0500\u0502\u0502\u0504\u0504"
+ "\u0506\u0506\u0508\u0508\u050a\u050a\u050c\u050c\u050e\u050e\u0510\u0510"
+ "\u0512\u0512\u0514\u0514\u0516\u0516\u0518\u0518\u051a\u051a\u051c\u051c"
+ "\u051e\u051e\u0520\u0520\u0522\u0522\u0524\u0524\u0526\u0526\u0528\u0528"
+ "\u0533\u0558\u10a2\u10c7\u10c9\u10c9\u10cf\u10cf\u1e02\u1e02\u1e04\u1e04"
+ "\u1e06\u1e06\u1e08\u1e08\u1e0a\u1e0a\u1e0c\u1e0c\u1e0e\u1e0e\u1e10\u1e10"
+ "\u1e12\u1e12\u1e14\u1e14\u1e16\u1e16\u1e18\u1e18\u1e1a\u1e1a\u1e1c\u1e1c"
+ "\u1e1e\u1e1e\u1e20\u1e20\u1e22\u1e22\u1e24\u1e24\u1e26\u1e26\u1e28\u1e28"
+ "\u1e2a\u1e2a\u1e2c\u1e2c\u1e2e\u1e2e\u1e30\u1e30\u1e32\u1e32\u1e34\u1e34"
+ "\u1e36\u1e36\u1e38\u1e38\u1e3a\u1e3a\u1e3c\u1e3c\u1e3e\u1e3e\u1e40\u1e40"
+ "\u1e42\u1e42\u1e44\u1e44\u1e46\u1e46\u1e48\u1e48\u1e4a\u1e4a\u1e4c\u1e4c"
+ "\u1e4e\u1e4e\u1e50\u1e50\u1e52\u1e52\u1e54\u1e54\u1e56\u1e56\u1e58\u1e58"
+ "\u1e5a\u1e5a\u1e5c\u1e5c\u1e5e\u1e5e\u1e60\u1e60\u1e62\u1e62\u1e64\u1e64"
+ "\u1e66\u1e66\u1e68\u1e68\u1e6a\u1e6a\u1e6c\u1e6c\u1e6e\u1e6e\u1e70\u1e70"
+ "\u1e72\u1e72\u1e74\u1e74\u1e76\u1e76\u1e78\u1e78\u1e7a\u1e7a\u1e7c\u1e7c"
+ "\u1e7e\u1e7e\u1e80\u1e80\u1e82\u1e82\u1e84\u1e84\u1e86\u1e86\u1e88\u1e88"
+ "\u1e8a\u1e8a\u1e8c\u1e8c\u1e8e\u1e8e\u1e90\u1e90\u1e92\u1e92\u1e94\u1e94"
+ "\u1e96\u1e96\u1ea0\u1ea0\u1ea2\u1ea2\u1ea4\u1ea4\u1ea6\u1ea6\u1ea8\u1ea8"
+ "\u1eaa\u1eaa\u1eac\u1eac\u1eae\u1eae\u1eb0\u1eb0\u1eb2\u1eb2\u1eb4\u1eb4"
+ "\u1eb6\u1eb6\u1eb8\u1eb8\u1eba\u1eba\u1ebc\u1ebc\u1ebe\u1ebe\u1ec0\u1ec0"
+ "\u1ec2\u1ec2\u1ec4\u1ec4\u1ec6\u1ec6\u1ec8\u1ec8\u1eca\u1eca\u1ecc\u1ecc"
+ "\u1ece\u1ece\u1ed0\u1ed0\u1ed2\u1ed2\u1ed4\u1ed4\u1ed6\u1ed6\u1ed8\u1ed8"
+ "\u1eda\u1eda\u1edc\u1edc\u1ede\u1ede\u1ee0\u1ee0\u1ee2\u1ee2\u1ee4\u1ee4"
+ "\u1ee6\u1ee6\u1ee8\u1ee8\u1eea\u1eea\u1eec\u1eec\u1eee\u1eee\u1ef0\u1ef0"
+ "\u1ef2\u1ef2\u1ef4\u1ef4\u1ef6\u1ef6\u1ef8\u1ef8\u1efa\u1efa\u1efc\u1efc"
+ "\u1efe\u1efe\u1f00\u1f00\u1f0a\u1f11\u1f1a\u1f1f\u1f2a\u1f31\u1f3a\u1f41"
+ "\u1f4a\u1f4f\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f5f\u1f61\u1f61\u1f6a\u1f71"
+ "\u1fba\u1fbd\u1fca\u1fcd\u1fda\u1fdd\u1fea\u1fee\u1ffa\u1ffd\u2104\u2104"
+ "\u2109\u2109\u210d\u210f\u2112\u2114\u2117\u2117\u211b\u211f\u2126\u2126"
+ "\u2128\u2128\u212a\u212a\u212c\u212f\u2132\u2135\u2140\u2141\u2147\u2147"
+ "\u2185\u2185\u2c02\u2c30\u2c62\u2c62\u2c64\u2c66\u2c69\u2c69\u2c6b\u2c6b"
+ "\u2c6d\u2c6d\u2c6f\u2c72\u2c74\u2c74\u2c77\u2c77\u2c80\u2c82\u2c84\u2c84"
+ "\u2c86\u2c86\u2c88\u2c88\u2c8a\u2c8a\u2c8c\u2c8c\u2c8e\u2c8e\u2c90\u2c90"
+ "\u2c92\u2c92\u2c94\u2c94\u2c96\u2c96\u2c98\u2c98\u2c9a\u2c9a\u2c9c\u2c9c"
+ "\u2c9e\u2c9e\u2ca0\u2ca0\u2ca2\u2ca2\u2ca4\u2ca4\u2ca6\u2ca6\u2ca8\u2ca8"
+ "\u2caa\u2caa\u2cac\u2cac\u2cae\u2cae\u2cb0\u2cb0\u2cb2\u2cb2\u2cb4\u2cb4"
+ "\u2cb6\u2cb6\u2cb8\u2cb8\u2cba\u2cba\u2cbc\u2cbc\u2cbe\u2cbe\u2cc0\u2cc0"
+ "\u2cc2\u2cc2\u2cc4\u2cc4\u2cc6\u2cc6\u2cc8\u2cc8\u2cca\u2cca\u2ccc\u2ccc"
+ "\u2cce\u2cce\u2cd0\u2cd0\u2cd2\u2cd2\u2cd4\u2cd4\u2cd6\u2cd6\u2cd8\u2cd8"
+ "\u2cda\u2cda\u2cdc\u2cdc\u2cde\u2cde\u2ce0\u2ce0\u2ce2\u2ce2\u2ce4\u2ce4"
+ "\u2ced\u2ced\u2cef\u2cef\u2cf4\u2cf4\ua642\ua642\ua644\ua644\ua646\ua646"
+ "\ua648\ua648\ua64a\ua64a\ua64c\ua64c\ua64e\ua64e\ua650\ua650\ua652\ua652"
+ "\ua654\ua654\ua656\ua656\ua658\ua658\ua65a\ua65a\ua65c\ua65c\ua65e\ua65e"
+ "\ua660\ua660\ua662\ua662\ua664\ua664\ua666\ua666\ua668\ua668\ua66a\ua66a"
+ "\ua66c\ua66c\ua66e\ua66e\ua682\ua682\ua684\ua684\ua686\ua686\ua688\ua688"
+ "\ua68a\ua68a\ua68c\ua68c\ua68e\ua68e\ua690\ua690\ua692\ua692\ua694\ua694"
+ "\ua696\ua696\ua698\ua698\ua724\ua724\ua726\ua726\ua728\ua728\ua72a\ua72a"
+ "\ua72c\ua72c\ua72e\ua72e\ua730\ua730\ua734\ua734\ua736\ua736\ua738\ua738"
+ "\ua73a\ua73a\ua73c\ua73c\ua73e\ua73e\ua740\ua740\ua742\ua742\ua744\ua744"
+ "\ua746\ua746\ua748\ua748\ua74a\ua74a\ua74c\ua74c\ua74e\ua74e\ua750\ua750"
+ "\ua752\ua752\ua754\ua754\ua756\ua756\ua758\ua758\ua75a\ua75a\ua75c\ua75c"
+ "\ua75e\ua75e\ua760\ua760\ua762\ua762\ua764\ua764\ua766\ua766\ua768\ua768"
+ "\ua76a\ua76a\ua76c\ua76c\ua76e\ua76e\ua770\ua770\ua77b\ua77b\ua77d\ua77d"
+ "\ua77f\ua780\ua782\ua782\ua784\ua784\ua786\ua786\ua788\ua788\ua78d\ua78d"
+ "\ua78f\ua78f\ua792\ua792\ua794\ua794\ua7a2\ua7a2\ua7a4\ua7a4\ua7a6\ua7a6"
+ "\ua7a8\ua7a8\ua7aa\ua7aa\ua7ac\ua7ac\uff23\uff3c%\2\62;\u0662\u066b\u06f2"
+ "\u06fb\u07c2\u07cb\u0968\u0971\u09e8\u09f1\u0a68\u0a71\u0ae8\u0af1\u0b68"
+ "\u0b71\u0be8\u0bf1\u0c68\u0c71\u0ce8\u0cf1\u0d68\u0d71\u0e52\u0e5b\u0ed2"
+ "\u0edb\u0f22\u0f2b\u1042\u104b\u1092\u109b\u17e2\u17eb\u1812\u181b\u1948"
+ "\u1951\u19d2\u19db\u1a82\u1a8b\u1a92\u1a9b\u1b52\u1b5b\u1bb2\u1bbb\u1c42"
+ "\u1c4b\u1c52\u1c5b\ua622\ua62b\ua8d2\ua8db\ua902\ua90b\ua9d2\ua9db\uaa52"
+ "\uaa5b\uabf2\uabfb\uff12\uff1b\t\2\u16f0\u16f2\u2162\u2184\u2187\u218a"
+ "\u3009\u3009\u3023\u302b\u303a\u303c\ua6e8\ua6f1\2\36\2\3\3\2\2\2\2\5"
+ "\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2"
+ "\3\21\3\2\2\2\5\23\3\2\2\2\7\25\3\2\2\2\t\27\3\2\2\2\13\31\3\2\2\2\r\33"
+ "\3\2\2\2\17\35\3\2\2\2\21\22\t\2\2\2\22\4\3\2\2\2\23\24\t\3\2\2\24\6\3"
+ "\2\2\2\25\26\t\4\2\2\26\b\3\2\2\2\27\30\t\5\2\2\30\n\3\2\2\2\31\32\t\6"
+ "\2\2\32\f\3\2\2\2\33\34\t\7\2\2\34\16\3\2\2\2\35\36\t\b\2\2\36\20\3\2"
+ "\2\2\3\2\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE"};
static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); }
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
UNICODE_CLASS_LL=1, UNICODE_CLASS_LM=2, UNICODE_CLASS_LO=3, UNICODE_CLASS_LT=4,
UNICODE_CLASS_LU=5, UNICODE_CLASS_ND=6, UNICODE_CLASS_NL=7;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
public static String[] modeNames = {
"DEFAULT_MODE"
};
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
private static String[] makeRuleNames() {
return new String[] {
"UNICODE_CLASS_LL", "UNICODE_CLASS_LM", "UNICODE_CLASS_LO", "UNICODE_CLASS_LT",
"UNICODE_CLASS_LU", "UNICODE_CLASS_ND", "UNICODE_CLASS_NL"
};
}
public static final String[] ruleNames = makeRuleNames();
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
private static String[] makeLiteralNames() {
return new String[] {
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "UNICODE_CLASS_LL", "UNICODE_CLASS_LM", "UNICODE_CLASS_LO", "UNICODE_CLASS_LT",
"UNICODE_CLASS_LU", "UNICODE_CLASS_ND", "UNICODE_CLASS_NL"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public UnicodeClasses(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
private static String[] makeRuleNames() {
return new String[] {
"UNICODE_CLASS_LL",
"UNICODE_CLASS_LM",
"UNICODE_CLASS_LO",
"UNICODE_CLASS_LT",
"UNICODE_CLASS_LU",
"UNICODE_CLASS_ND",
"UNICODE_CLASS_NL"
};
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
private static String[] makeLiteralNames() {
return new String[] {};
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"UNICODE_CLASS_LL",
"UNICODE_CLASS_LM",
"UNICODE_CLASS_LO",
"UNICODE_CLASS_LT",
"UNICODE_CLASS_LU",
"UNICODE_CLASS_ND",
"UNICODE_CLASS_NL"
};
}
@Override
@Override
public String[] getRuleNames() {
return ruleNames;
}
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
public UnicodeClasses(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() {
return "UnicodeClasses.g4";
}
@Override
public String getGrammarFileName() { return "UnicodeClasses.g4"; }
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
public String[] getChannelNames() { return channelNames; }
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@Override
public String[] getModeNames() { return modeNames; }
@Override
public ATN getATN() { return _ATN; }
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\t\37\b\1\4\2\t\2"+
"\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\3\2\3\2\3\3\3\3\3\4\3"+
"\4\3\5\3\5\3\6\3\6\3\7\3\7\3\b\3\b\2\2\t\3\3\5\4\7\5\t\6\13\7\r\b\17\t"+
"\3\2\t\u0248\2c|\u00b7\u00b7\u00e1\u00f8\u00fa\u0101\u0103\u0103\u0105"+
"\u0105\u0107\u0107\u0109\u0109\u010b\u010b\u010d\u010d\u010f\u010f\u0111"+
"\u0111\u0113\u0113\u0115\u0115\u0117\u0117\u0119\u0119\u011b\u011b\u011d"+
"\u011d\u011f\u011f\u0121\u0121\u0123\u0123\u0125\u0125\u0127\u0127\u0129"+
"\u0129\u012b\u012b\u012d\u012d\u012f\u012f\u0131\u0131\u0133\u0133\u0135"+
"\u0135\u0137\u0137\u0139\u013a\u013c\u013c\u013e\u013e\u0140\u0140\u0142"+
"\u0142\u0144\u0144\u0146\u0146\u0148\u0148\u014a\u014b\u014d\u014d\u014f"+
"\u014f\u0151\u0151\u0153\u0153\u0155\u0155\u0157\u0157\u0159\u0159\u015b"+
"\u015b\u015d\u015d\u015f\u015f\u0161\u0161\u0163\u0163\u0165\u0165\u0167"+
"\u0167\u0169\u0169\u016b\u016b\u016d\u016d\u016f\u016f\u0171\u0171\u0173"+
"\u0173\u0175\u0175\u0177\u0177\u0179\u0179\u017c\u017c\u017e\u017e\u0180"+
"\u0182\u0185\u0185\u0187\u0187\u018a\u018a\u018e\u018f\u0194\u0194\u0197"+
"\u0197\u019b\u019d\u01a0\u01a0\u01a3\u01a3\u01a5\u01a5\u01a7\u01a7\u01aa"+
"\u01aa\u01ac\u01ad\u01af\u01af\u01b2\u01b2\u01b6\u01b6\u01b8\u01b8\u01bb"+
"\u01bc\u01bf\u01c1\u01c8\u01c8\u01cb\u01cb\u01ce\u01ce\u01d0\u01d0\u01d2"+
"\u01d2\u01d4\u01d4\u01d6\u01d6\u01d8\u01d8\u01da\u01da\u01dc\u01dc\u01de"+
"\u01df\u01e1\u01e1\u01e3\u01e3\u01e5\u01e5\u01e7\u01e7\u01e9\u01e9\u01eb"+
"\u01eb\u01ed\u01ed\u01ef\u01ef\u01f1\u01f2\u01f5\u01f5\u01f7\u01f7\u01fb"+
"\u01fb\u01fd\u01fd\u01ff\u01ff\u0201\u0201\u0203\u0203\u0205\u0205\u0207"+
"\u0207\u0209\u0209\u020b\u020b\u020d\u020d\u020f\u020f\u0211\u0211\u0213"+
"\u0213\u0215\u0215\u0217\u0217\u0219\u0219\u021b\u021b\u021d\u021d\u021f"+
"\u021f\u0221\u0221\u0223\u0223\u0225\u0225\u0227\u0227\u0229\u0229\u022b"+
"\u022b\u022d\u022d\u022f\u022f\u0231\u0231\u0233\u0233\u0235\u023b\u023e"+
"\u023e\u0241\u0242\u0244\u0244\u0249\u0249\u024b\u024b\u024d\u024d\u024f"+
"\u024f\u0251\u0295\u0297\u02b1\u0373\u0373\u0375\u0375\u0379\u0379\u037d"+
"\u037f\u0392\u0392\u03ae\u03d0\u03d2\u03d3\u03d7\u03d9\u03db\u03db\u03dd"+
"\u03dd\u03df\u03df\u03e1\u03e1\u03e3\u03e3\u03e5\u03e5\u03e7\u03e7\u03e9"+
"\u03e9\u03eb\u03eb\u03ed\u03ed\u03ef\u03ef\u03f1\u03f5\u03f7\u03f7\u03fa"+
"\u03fa\u03fd\u03fe\u0432\u0461\u0463\u0463\u0465\u0465\u0467\u0467\u0469"+
"\u0469\u046b\u046b\u046d\u046d\u046f\u046f\u0471\u0471\u0473\u0473\u0475"+
"\u0475\u0477\u0477\u0479\u0479\u047b\u047b\u047d\u047d\u047f\u047f\u0481"+
"\u0481\u0483\u0483\u048d\u048d\u048f\u048f\u0491\u0491\u0493\u0493\u0495"+
"\u0495\u0497\u0497\u0499\u0499\u049b\u049b\u049d\u049d\u049f\u049f\u04a1"+
"\u04a1\u04a3\u04a3\u04a5\u04a5\u04a7\u04a7\u04a9\u04a9\u04ab\u04ab\u04ad"+
"\u04ad\u04af\u04af\u04b1\u04b1\u04b3\u04b3\u04b5\u04b5\u04b7\u04b7\u04b9"+
"\u04b9\u04bb\u04bb\u04bd\u04bd\u04bf\u04bf\u04c1\u04c1\u04c4\u04c4\u04c6"+
"\u04c6\u04c8\u04c8\u04ca\u04ca\u04cc\u04cc\u04ce\u04ce\u04d0\u04d1\u04d3"+
"\u04d3\u04d5\u04d5\u04d7\u04d7\u04d9\u04d9\u04db\u04db\u04dd\u04dd\u04df"+
"\u04df\u04e1\u04e1\u04e3\u04e3\u04e5\u04e5\u04e7\u04e7\u04e9\u04e9\u04eb"+
"\u04eb\u04ed\u04ed\u04ef\u04ef\u04f1\u04f1\u04f3\u04f3\u04f5\u04f5\u04f7"+
"\u04f7\u04f9\u04f9\u04fb\u04fb\u04fd\u04fd\u04ff\u04ff\u0501\u0501\u0503"+
"\u0503\u0505\u0505\u0507\u0507\u0509\u0509\u050b\u050b\u050d\u050d\u050f"+
"\u050f\u0511\u0511\u0513\u0513\u0515\u0515\u0517\u0517\u0519\u0519\u051b"+
"\u051b\u051d\u051d\u051f\u051f\u0521\u0521\u0523\u0523\u0525\u0525\u0527"+
"\u0527\u0529\u0529\u0563\u0589\u1d02\u1d2d\u1d6d\u1d79\u1d7b\u1d9c\u1e03"+
"\u1e03\u1e05\u1e05\u1e07\u1e07\u1e09\u1e09\u1e0b\u1e0b\u1e0d\u1e0d\u1e0f"+
"\u1e0f\u1e11\u1e11\u1e13\u1e13\u1e15\u1e15\u1e17\u1e17\u1e19\u1e19\u1e1b"+
"\u1e1b\u1e1d\u1e1d\u1e1f\u1e1f\u1e21\u1e21\u1e23\u1e23\u1e25\u1e25\u1e27"+
"\u1e27\u1e29\u1e29\u1e2b\u1e2b\u1e2d\u1e2d\u1e2f\u1e2f\u1e31\u1e31\u1e33"+
"\u1e33\u1e35\u1e35\u1e37\u1e37\u1e39\u1e39\u1e3b\u1e3b\u1e3d\u1e3d\u1e3f"+
"\u1e3f\u1e41\u1e41\u1e43\u1e43\u1e45\u1e45\u1e47\u1e47\u1e49\u1e49\u1e4b"+
"\u1e4b\u1e4d\u1e4d\u1e4f\u1e4f\u1e51\u1e51\u1e53\u1e53\u1e55\u1e55\u1e57"+
"\u1e57\u1e59\u1e59\u1e5b\u1e5b\u1e5d\u1e5d\u1e5f\u1e5f\u1e61\u1e61\u1e63"+
"\u1e63\u1e65\u1e65\u1e67\u1e67\u1e69\u1e69\u1e6b\u1e6b\u1e6d\u1e6d\u1e6f"+
"\u1e6f\u1e71\u1e71\u1e73\u1e73\u1e75\u1e75\u1e77\u1e77\u1e79\u1e79\u1e7b"+
"\u1e7b\u1e7d\u1e7d\u1e7f\u1e7f\u1e81\u1e81\u1e83\u1e83\u1e85\u1e85\u1e87"+
"\u1e87\u1e89\u1e89\u1e8b\u1e8b\u1e8d\u1e8d\u1e8f\u1e8f\u1e91\u1e91\u1e93"+
"\u1e93\u1e95\u1e95\u1e97\u1e9f\u1ea1\u1ea1\u1ea3\u1ea3\u1ea5\u1ea5\u1ea7"+
"\u1ea7\u1ea9\u1ea9\u1eab\u1eab\u1ead\u1ead\u1eaf\u1eaf\u1eb1\u1eb1\u1eb3"+
"\u1eb3\u1eb5\u1eb5\u1eb7\u1eb7\u1eb9\u1eb9\u1ebb\u1ebb\u1ebd\u1ebd\u1ebf"+
"\u1ebf\u1ec1\u1ec1\u1ec3\u1ec3\u1ec5\u1ec5\u1ec7\u1ec7\u1ec9\u1ec9\u1ecb"+
"\u1ecb\u1ecd\u1ecd\u1ecf\u1ecf\u1ed1\u1ed1\u1ed3\u1ed3\u1ed5\u1ed5\u1ed7"+
"\u1ed7\u1ed9\u1ed9\u1edb\u1edb\u1edd\u1edd\u1edf\u1edf\u1ee1\u1ee1\u1ee3"+
"\u1ee3\u1ee5\u1ee5\u1ee7\u1ee7\u1ee9\u1ee9\u1eeb\u1eeb\u1eed\u1eed\u1eef"+
"\u1eef\u1ef1\u1ef1\u1ef3\u1ef3\u1ef5\u1ef5\u1ef7\u1ef7\u1ef9\u1ef9\u1efb"+
"\u1efb\u1efd\u1efd\u1eff\u1eff\u1f01\u1f09\u1f12\u1f17\u1f22\u1f29\u1f32"+
"\u1f39\u1f42\u1f47\u1f52\u1f59\u1f62\u1f69\u1f72\u1f7f\u1f82\u1f89\u1f92"+
"\u1f99\u1fa2\u1fa9\u1fb2\u1fb6\u1fb8\u1fb9\u1fc0\u1fc0\u1fc4\u1fc6\u1fc8"+
"\u1fc9\u1fd2\u1fd5\u1fd8\u1fd9\u1fe2\u1fe9\u1ff4\u1ff6\u1ff8\u1ff9\u210c"+
"\u210c\u2110\u2111\u2115\u2115\u2131\u2131\u2136\u2136\u213b\u213b\u213e"+
"\u213f\u2148\u214b\u2150\u2150\u2186\u2186\u2c32\u2c60\u2c63\u2c63\u2c67"+
"\u2c68\u2c6a\u2c6a\u2c6c\u2c6c\u2c6e\u2c6e\u2c73\u2c73\u2c75\u2c76\u2c78"+
"\u2c7d\u2c83\u2c83\u2c85\u2c85\u2c87\u2c87\u2c89\u2c89\u2c8b\u2c8b\u2c8d"+
"\u2c8d\u2c8f\u2c8f\u2c91\u2c91\u2c93\u2c93\u2c95\u2c95\u2c97\u2c97\u2c99"+
"\u2c99\u2c9b\u2c9b\u2c9d\u2c9d\u2c9f\u2c9f\u2ca1\u2ca1\u2ca3\u2ca3\u2ca5"+
"\u2ca5\u2ca7\u2ca7\u2ca9\u2ca9\u2cab\u2cab\u2cad\u2cad\u2caf\u2caf\u2cb1"+
"\u2cb1\u2cb3\u2cb3\u2cb5\u2cb5\u2cb7\u2cb7\u2cb9\u2cb9\u2cbb\u2cbb\u2cbd"+
"\u2cbd\u2cbf\u2cbf\u2cc1\u2cc1\u2cc3\u2cc3\u2cc5\u2cc5\u2cc7\u2cc7\u2cc9"+
"\u2cc9\u2ccb\u2ccb\u2ccd\u2ccd\u2ccf\u2ccf\u2cd1\u2cd1\u2cd3\u2cd3\u2cd5"+
"\u2cd5\u2cd7\u2cd7\u2cd9\u2cd9\u2cdb\u2cdb\u2cdd\u2cdd\u2cdf\u2cdf\u2ce1"+
"\u2ce1\u2ce3\u2ce3\u2ce5\u2ce6\u2cee\u2cee\u2cf0\u2cf0\u2cf5\u2cf5\u2d02"+
"\u2d27\u2d29\u2d29\u2d2f\u2d2f\ua643\ua643\ua645\ua645\ua647\ua647\ua649"+
"\ua649\ua64b\ua64b\ua64d\ua64d\ua64f\ua64f\ua651\ua651\ua653\ua653\ua655"+
"\ua655\ua657\ua657\ua659\ua659\ua65b\ua65b\ua65d\ua65d\ua65f\ua65f\ua661"+
"\ua661\ua663\ua663\ua665\ua665\ua667\ua667\ua669\ua669\ua66b\ua66b\ua66d"+
"\ua66d\ua66f\ua66f\ua683\ua683\ua685\ua685\ua687\ua687\ua689\ua689\ua68b"+
"\ua68b\ua68d\ua68d\ua68f\ua68f\ua691\ua691\ua693\ua693\ua695\ua695\ua697"+
"\ua697\ua699\ua699\ua725\ua725\ua727\ua727\ua729\ua729\ua72b\ua72b\ua72d"+
"\ua72d\ua72f\ua72f\ua731\ua733\ua735\ua735\ua737\ua737\ua739\ua739\ua73b"+
"\ua73b\ua73d\ua73d\ua73f\ua73f\ua741\ua741\ua743\ua743\ua745\ua745\ua747"+
"\ua747\ua749\ua749\ua74b\ua74b\ua74d\ua74d\ua74f\ua74f\ua751\ua751\ua753"+
"\ua753\ua755\ua755\ua757\ua757\ua759\ua759\ua75b\ua75b\ua75d\ua75d\ua75f"+
"\ua75f\ua761\ua761\ua763\ua763\ua765\ua765\ua767\ua767\ua769\ua769\ua76b"+
"\ua76b\ua76d\ua76d\ua76f\ua76f\ua771\ua771\ua773\ua77a\ua77c\ua77c\ua77e"+
"\ua77e\ua781\ua781\ua783\ua783\ua785\ua785\ua787\ua787\ua789\ua789\ua78e"+
"\ua78e\ua790\ua790\ua793\ua793\ua795\ua795\ua7a3\ua7a3\ua7a5\ua7a5\ua7a7"+
"\ua7a7\ua7a9\ua7a9\ua7ab\ua7ab\ua7fc\ua7fc\ufb02\ufb08\ufb15\ufb19\uff43"+
"\uff5c\65\2\u02b2\u02c3\u02c8\u02d3\u02e2\u02e6\u02ee\u02ee\u02f0\u02f0"+
"\u0376\u0376\u037c\u037c\u055b\u055b\u0642\u0642\u06e7\u06e8\u07f6\u07f7"+
"\u07fc\u07fc\u081c\u081c\u0826\u0826\u082a\u082a\u0973\u0973\u0e48\u0e48"+
"\u0ec8\u0ec8\u10fe\u10fe\u17d9\u17d9\u1845\u1845\u1aa9\u1aa9\u1c7a\u1c7f"+
"\u1d2e\u1d6c\u1d7a\u1d7a\u1d9d\u1dc1\u2073\u2073\u2081\u2081\u2092\u209e"+
"\u2c7e\u2c7f\u2d71\u2d71\u2e31\u2e31\u3007\u3007\u3033\u3037\u303d\u303d"+
"\u309f\u30a0\u30fe\u3100\ua017\ua017\ua4fa\ua4ff\ua60e\ua60e\ua681\ua681"+
"\ua719\ua721\ua772\ua772\ua78a\ua78a\ua7fa\ua7fb\ua9d1\ua9d1\uaa72\uaa72"+
"\uaadf\uaadf\uaaf5\uaaf6\uff72\uff72\uffa0\uffa1\u0123\2\u00ac\u00ac\u00bc"+
"\u00bc\u01bd\u01bd\u01c2\u01c5\u0296\u0296\u05d2\u05ec\u05f2\u05f4\u0622"+
"\u0641\u0643\u064c\u0670\u0671\u0673\u06d5\u06d7\u06d7\u06f0\u06f1\u06fc"+
"\u06fe\u0701\u0701\u0712\u0712\u0714\u0731\u074f\u07a7\u07b3\u07b3\u07cc"+
"\u07ec\u0802\u0817\u0842\u085a\u08a2\u08a2\u08a4\u08ae\u0906\u093b\u093f"+
"\u093f\u0952\u0952\u095a\u0963\u0974\u0979\u097b\u0981\u0987\u098e\u0991"+
"\u0992\u0995\u09aa\u09ac\u09b2\u09b4\u09b4\u09b8\u09bb\u09bf\u09bf\u09d0"+
"\u09d0\u09de\u09df\u09e1\u09e3\u09f2\u09f3\u0a07\u0a0c\u0a11\u0a12\u0a15"+
"\u0a2a\u0a2c\u0a32\u0a34\u0a35\u0a37\u0a38\u0a3a\u0a3b\u0a5b\u0a5e\u0a60"+
"\u0a60\u0a74\u0a76\u0a87\u0a8f\u0a91\u0a93\u0a95\u0aaa\u0aac\u0ab2\u0ab4"+
"\u0ab5\u0ab7\u0abb\u0abf\u0abf\u0ad2\u0ad2\u0ae2\u0ae3\u0b07\u0b0e\u0b11"+
"\u0b12\u0b15\u0b2a\u0b2c\u0b32\u0b34\u0b35\u0b37\u0b3b\u0b3f\u0b3f\u0b5e"+
"\u0b5f\u0b61\u0b63\u0b73\u0b73\u0b85\u0b85\u0b87\u0b8c\u0b90\u0b92\u0b94"+
"\u0b97\u0b9b\u0b9c\u0b9e\u0b9e\u0ba0\u0ba1\u0ba5\u0ba6\u0baa\u0bac\u0bb0"+
"\u0bbb\u0bd2\u0bd2\u0c07\u0c0e\u0c10\u0c12\u0c14\u0c2a\u0c2c\u0c35\u0c37"+
"\u0c3b\u0c3f\u0c3f\u0c5a\u0c5b\u0c62\u0c63\u0c87\u0c8e\u0c90\u0c92\u0c94"+
"\u0caa\u0cac\u0cb5\u0cb7\u0cbb\u0cbf\u0cbf\u0ce0\u0ce0\u0ce2\u0ce3\u0cf3"+
"\u0cf4\u0d07\u0d0e\u0d10\u0d12\u0d14\u0d3c\u0d3f\u0d3f\u0d50\u0d50\u0d62"+
"\u0d63\u0d7c\u0d81\u0d87\u0d98\u0d9c\u0db3\u0db5\u0dbd\u0dbf\u0dbf\u0dc2"+
"\u0dc8\u0e03\u0e32\u0e34\u0e35\u0e42\u0e47\u0e83\u0e84\u0e86\u0e86\u0e89"+
"\u0e8a\u0e8c\u0e8c\u0e8f\u0e8f\u0e96\u0e99\u0e9b\u0ea1\u0ea3\u0ea5\u0ea7"+
"\u0ea7\u0ea9\u0ea9\u0eac\u0ead\u0eaf\u0eb2\u0eb4\u0eb5\u0ebf\u0ebf\u0ec2"+
"\u0ec6\u0ede\u0ee1\u0f02\u0f02\u0f42\u0f49\u0f4b\u0f6e\u0f8a\u0f8e\u1002"+
"\u102c\u1041\u1041\u1052\u1057\u105c\u105f\u1063\u1063\u1067\u1068\u1070"+
"\u1072\u1077\u1083\u1090\u1090\u10d2\u10fc\u10ff\u124a\u124c\u124f\u1252"+
"\u1258\u125a\u125a\u125c\u125f\u1262\u128a\u128c\u128f\u1292\u12b2\u12b4"+
"\u12b7\u12ba\u12c0\u12c2\u12c2\u12c4\u12c7\u12ca\u12d8\u12da\u1312\u1314"+
"\u1317\u131a\u135c\u1382\u1391\u13a2\u13f6\u1403\u166e\u1671\u1681\u1683"+
"\u169c\u16a2\u16ec\u1702\u170e\u1710\u1713\u1722\u1733\u1742\u1753\u1762"+
"\u176e\u1770\u1772\u1782\u17b5\u17de\u17de\u1822\u1844\u1846\u1879\u1882"+
"\u18aa\u18ac\u18ac\u18b2\u18f7\u1902\u191e\u1952\u196f\u1972\u1976\u1982"+
"\u19ad\u19c3\u19c9\u1a02\u1a18\u1a22\u1a56\u1b07\u1b35\u1b47\u1b4d\u1b85"+
"\u1ba2\u1bb0\u1bb1\u1bbc\u1be7\u1c02\u1c25\u1c4f\u1c51\u1c5c\u1c79\u1ceb"+
"\u1cee\u1cf0\u1cf3\u1cf7\u1cf8\u2137\u213a\u2d32\u2d69\u2d82\u2d98\u2da2"+
"\u2da8\u2daa\u2db0\u2db2\u2db8\u2dba\u2dc0\u2dc2\u2dc8\u2dca\u2dd0\u2dd2"+
"\u2dd8\u2dda\u2de0\u3008\u3008\u303e\u303e\u3043\u3098\u30a1\u30a1\u30a3"+
"\u30fc\u3101\u3101\u3107\u312f\u3133\u3190\u31a2\u31bc\u31f2\u3201\u3402"+
"\u3402\u4db7\u4db7\u4e02\u4e02\u9fce\u9fce\ua002\ua016\ua018\ua48e\ua4d2"+
"\ua4f9\ua502\ua60d\ua612\ua621\ua62c\ua62d\ua670\ua670\ua6a2\ua6e7\ua7fd"+
"\ua803\ua805\ua807\ua809\ua80c\ua80e\ua824\ua842\ua875\ua884\ua8b5\ua8f4"+
"\ua8f9\ua8fd\ua8fd\ua90c\ua927\ua932\ua948\ua962\ua97e\ua986\ua9b4\uaa02"+
"\uaa2a\uaa42\uaa44\uaa46\uaa4d\uaa62\uaa71\uaa73\uaa78\uaa7c\uaa7c\uaa82"+
"\uaab1\uaab3\uaab3\uaab7\uaab8\uaabb\uaabf\uaac2\uaac2\uaac4\uaac4\uaadd"+
"\uaade\uaae2\uaaec\uaaf4\uaaf4\uab03\uab08\uab0b\uab10\uab13\uab18\uab22"+
"\uab28\uab2a\uab30\uabc2\uabe4\uac02\uac02\ud7a5\ud7a5\ud7b2\ud7c8\ud7cd"+
"\ud7fd\uf902\ufa6f\ufa72\ufadb\ufb1f\ufb1f\ufb21\ufb2a\ufb2c\ufb38\ufb3a"+
"\ufb3e\ufb40\ufb40\ufb42\ufb43\ufb45\ufb46\ufb48\ufbb3\ufbd5\ufd3f\ufd52"+
"\ufd91\ufd94\ufdc9\ufdf2\ufdfd\ufe72\ufe76\ufe78\ufefe\uff68\uff71\uff73"+
"\uff9f\uffa2\uffc0\uffc4\uffc9\uffcc\uffd1\uffd4\uffd9\uffdc\uffde\f\2"+
"\u01c7\u01c7\u01ca\u01ca\u01cd\u01cd\u01f4\u01f4\u1f8a\u1f91\u1f9a\u1fa1"+
"\u1faa\u1fb1\u1fbe\u1fbe\u1fce\u1fce\u1ffe\u1ffe\u0242\2C\\\u00c2\u00d8"+
"\u00da\u00e0\u0102\u0102\u0104\u0104\u0106\u0106\u0108\u0108\u010a\u010a"+
"\u010c\u010c\u010e\u010e\u0110\u0110\u0112\u0112\u0114\u0114\u0116\u0116"+
"\u0118\u0118\u011a\u011a\u011c\u011c\u011e\u011e\u0120\u0120\u0122\u0122"+
"\u0124\u0124\u0126\u0126\u0128\u0128\u012a\u012a\u012c\u012c\u012e\u012e"+
"\u0130\u0130\u0132\u0132\u0134\u0134\u0136\u0136\u0138\u0138\u013b\u013b"+
"\u013d\u013d\u013f\u013f\u0141\u0141\u0143\u0143\u0145\u0145\u0147\u0147"+
"\u0149\u0149\u014c\u014c\u014e\u014e\u0150\u0150\u0152\u0152\u0154\u0154"+
"\u0156\u0156\u0158\u0158\u015a\u015a\u015c\u015c\u015e\u015e\u0160\u0160"+
"\u0162\u0162\u0164\u0164\u0166\u0166\u0168\u0168\u016a\u016a\u016c\u016c"+
"\u016e\u016e\u0170\u0170\u0172\u0172\u0174\u0174\u0176\u0176\u0178\u0178"+
"\u017a\u017b\u017d\u017d\u017f\u017f\u0183\u0184\u0186\u0186\u0188\u0189"+
"\u018b\u018d\u0190\u0193\u0195\u0196\u0198\u019a\u019e\u019f\u01a1\u01a2"+
"\u01a4\u01a4\u01a6\u01a6\u01a8\u01a9\u01ab\u01ab\u01ae\u01ae\u01b0\u01b1"+
"\u01b3\u01b5\u01b7\u01b7\u01b9\u01ba\u01be\u01be\u01c6\u01c6\u01c9\u01c9"+
"\u01cc\u01cc\u01cf\u01cf\u01d1\u01d1\u01d3\u01d3\u01d5\u01d5\u01d7\u01d7"+
"\u01d9\u01d9\u01db\u01db\u01dd\u01dd\u01e0\u01e0\u01e2\u01e2\u01e4\u01e4"+
"\u01e6\u01e6\u01e8\u01e8\u01ea\u01ea\u01ec\u01ec\u01ee\u01ee\u01f0\u01f0"+
"\u01f3\u01f3\u01f6\u01f6\u01f8\u01fa\u01fc\u01fc\u01fe\u01fe\u0200\u0200"+
"\u0202\u0202\u0204\u0204\u0206\u0206\u0208\u0208\u020a\u020a\u020c\u020c"+
"\u020e\u020e\u0210\u0210\u0212\u0212\u0214\u0214\u0216\u0216\u0218\u0218"+
"\u021a\u021a\u021c\u021c\u021e\u021e\u0220\u0220\u0222\u0222\u0224\u0224"+
"\u0226\u0226\u0228\u0228\u022a\u022a\u022c\u022c\u022e\u022e\u0230\u0230"+
"\u0232\u0232\u0234\u0234\u023c\u023d\u023f\u0240\u0243\u0243\u0245\u0248"+
"\u024a\u024a\u024c\u024c\u024e\u024e\u0250\u0250\u0372\u0372\u0374\u0374"+
"\u0378\u0378\u0388\u0388\u038a\u038c\u038e\u038e\u0390\u0391\u0393\u03a3"+
"\u03a5\u03ad\u03d1\u03d1\u03d4\u03d6\u03da\u03da\u03dc\u03dc\u03de\u03de"+
"\u03e0\u03e0\u03e2\u03e2\u03e4\u03e4\u03e6\u03e6\u03e8\u03e8\u03ea\u03ea"+
"\u03ec\u03ec\u03ee\u03ee\u03f0\u03f0\u03f6\u03f6\u03f9\u03f9\u03fb\u03fc"+
"\u03ff\u0431\u0462\u0462\u0464\u0464\u0466\u0466\u0468\u0468\u046a\u046a"+
"\u046c\u046c\u046e\u046e\u0470\u0470\u0472\u0472\u0474\u0474\u0476\u0476"+
"\u0478\u0478\u047a\u047a\u047c\u047c\u047e\u047e\u0480\u0480\u0482\u0482"+
"\u048c\u048c\u048e\u048e\u0490\u0490\u0492\u0492\u0494\u0494\u0496\u0496"+
"\u0498\u0498\u049a\u049a\u049c\u049c\u049e\u049e\u04a0\u04a0\u04a2\u04a2"+
"\u04a4\u04a4\u04a6\u04a6\u04a8\u04a8\u04aa\u04aa\u04ac\u04ac\u04ae\u04ae"+
"\u04b0\u04b0\u04b2\u04b2\u04b4\u04b4\u04b6\u04b6\u04b8\u04b8\u04ba\u04ba"+
"\u04bc\u04bc\u04be\u04be\u04c0\u04c0\u04c2\u04c3\u04c5\u04c5\u04c7\u04c7"+
"\u04c9\u04c9\u04cb\u04cb\u04cd\u04cd\u04cf\u04cf\u04d2\u04d2\u04d4\u04d4"+
"\u04d6\u04d6\u04d8\u04d8\u04da\u04da\u04dc\u04dc\u04de\u04de\u04e0\u04e0"+
"\u04e2\u04e2\u04e4\u04e4\u04e6\u04e6\u04e8\u04e8\u04ea\u04ea\u04ec\u04ec"+
"\u04ee\u04ee\u04f0\u04f0\u04f2\u04f2\u04f4\u04f4\u04f6\u04f6\u04f8\u04f8"+
"\u04fa\u04fa\u04fc\u04fc\u04fe\u04fe\u0500\u0500\u0502\u0502\u0504\u0504"+
"\u0506\u0506\u0508\u0508\u050a\u050a\u050c\u050c\u050e\u050e\u0510\u0510"+
"\u0512\u0512\u0514\u0514\u0516\u0516\u0518\u0518\u051a\u051a\u051c\u051c"+
"\u051e\u051e\u0520\u0520\u0522\u0522\u0524\u0524\u0526\u0526\u0528\u0528"+
"\u0533\u0558\u10a2\u10c7\u10c9\u10c9\u10cf\u10cf\u1e02\u1e02\u1e04\u1e04"+
"\u1e06\u1e06\u1e08\u1e08\u1e0a\u1e0a\u1e0c\u1e0c\u1e0e\u1e0e\u1e10\u1e10"+
"\u1e12\u1e12\u1e14\u1e14\u1e16\u1e16\u1e18\u1e18\u1e1a\u1e1a\u1e1c\u1e1c"+
"\u1e1e\u1e1e\u1e20\u1e20\u1e22\u1e22\u1e24\u1e24\u1e26\u1e26\u1e28\u1e28"+
"\u1e2a\u1e2a\u1e2c\u1e2c\u1e2e\u1e2e\u1e30\u1e30\u1e32\u1e32\u1e34\u1e34"+
"\u1e36\u1e36\u1e38\u1e38\u1e3a\u1e3a\u1e3c\u1e3c\u1e3e\u1e3e\u1e40\u1e40"+
"\u1e42\u1e42\u1e44\u1e44\u1e46\u1e46\u1e48\u1e48\u1e4a\u1e4a\u1e4c\u1e4c"+
"\u1e4e\u1e4e\u1e50\u1e50\u1e52\u1e52\u1e54\u1e54\u1e56\u1e56\u1e58\u1e58"+
"\u1e5a\u1e5a\u1e5c\u1e5c\u1e5e\u1e5e\u1e60\u1e60\u1e62\u1e62\u1e64\u1e64"+
"\u1e66\u1e66\u1e68\u1e68\u1e6a\u1e6a\u1e6c\u1e6c\u1e6e\u1e6e\u1e70\u1e70"+
"\u1e72\u1e72\u1e74\u1e74\u1e76\u1e76\u1e78\u1e78\u1e7a\u1e7a\u1e7c\u1e7c"+
"\u1e7e\u1e7e\u1e80\u1e80\u1e82\u1e82\u1e84\u1e84\u1e86\u1e86\u1e88\u1e88"+
"\u1e8a\u1e8a\u1e8c\u1e8c\u1e8e\u1e8e\u1e90\u1e90\u1e92\u1e92\u1e94\u1e94"+
"\u1e96\u1e96\u1ea0\u1ea0\u1ea2\u1ea2\u1ea4\u1ea4\u1ea6\u1ea6\u1ea8\u1ea8"+
"\u1eaa\u1eaa\u1eac\u1eac\u1eae\u1eae\u1eb0\u1eb0\u1eb2\u1eb2\u1eb4\u1eb4"+
"\u1eb6\u1eb6\u1eb8\u1eb8\u1eba\u1eba\u1ebc\u1ebc\u1ebe\u1ebe\u1ec0\u1ec0"+
"\u1ec2\u1ec2\u1ec4\u1ec4\u1ec6\u1ec6\u1ec8\u1ec8\u1eca\u1eca\u1ecc\u1ecc"+
"\u1ece\u1ece\u1ed0\u1ed0\u1ed2\u1ed2\u1ed4\u1ed4\u1ed6\u1ed6\u1ed8\u1ed8"+
"\u1eda\u1eda\u1edc\u1edc\u1ede\u1ede\u1ee0\u1ee0\u1ee2\u1ee2\u1ee4\u1ee4"+
"\u1ee6\u1ee6\u1ee8\u1ee8\u1eea\u1eea\u1eec\u1eec\u1eee\u1eee\u1ef0\u1ef0"+
"\u1ef2\u1ef2\u1ef4\u1ef4\u1ef6\u1ef6\u1ef8\u1ef8\u1efa\u1efa\u1efc\u1efc"+
"\u1efe\u1efe\u1f00\u1f00\u1f0a\u1f11\u1f1a\u1f1f\u1f2a\u1f31\u1f3a\u1f41"+
"\u1f4a\u1f4f\u1f5b\u1f5b\u1f5d\u1f5d\u1f5f\u1f5f\u1f61\u1f61\u1f6a\u1f71"+
"\u1fba\u1fbd\u1fca\u1fcd\u1fda\u1fdd\u1fea\u1fee\u1ffa\u1ffd\u2104\u2104"+
"\u2109\u2109\u210d\u210f\u2112\u2114\u2117\u2117\u211b\u211f\u2126\u2126"+
"\u2128\u2128\u212a\u212a\u212c\u212f\u2132\u2135\u2140\u2141\u2147\u2147"+
"\u2185\u2185\u2c02\u2c30\u2c62\u2c62\u2c64\u2c66\u2c69\u2c69\u2c6b\u2c6b"+
"\u2c6d\u2c6d\u2c6f\u2c72\u2c74\u2c74\u2c77\u2c77\u2c80\u2c82\u2c84\u2c84"+
"\u2c86\u2c86\u2c88\u2c88\u2c8a\u2c8a\u2c8c\u2c8c\u2c8e\u2c8e\u2c90\u2c90"+
"\u2c92\u2c92\u2c94\u2c94\u2c96\u2c96\u2c98\u2c98\u2c9a\u2c9a\u2c9c\u2c9c"+
"\u2c9e\u2c9e\u2ca0\u2ca0\u2ca2\u2ca2\u2ca4\u2ca4\u2ca6\u2ca6\u2ca8\u2ca8"+
"\u2caa\u2caa\u2cac\u2cac\u2cae\u2cae\u2cb0\u2cb0\u2cb2\u2cb2\u2cb4\u2cb4"+
"\u2cb6\u2cb6\u2cb8\u2cb8\u2cba\u2cba\u2cbc\u2cbc\u2cbe\u2cbe\u2cc0\u2cc0"+
"\u2cc2\u2cc2\u2cc4\u2cc4\u2cc6\u2cc6\u2cc8\u2cc8\u2cca\u2cca\u2ccc\u2ccc"+
"\u2cce\u2cce\u2cd0\u2cd0\u2cd2\u2cd2\u2cd4\u2cd4\u2cd6\u2cd6\u2cd8\u2cd8"+
"\u2cda\u2cda\u2cdc\u2cdc\u2cde\u2cde\u2ce0\u2ce0\u2ce2\u2ce2\u2ce4\u2ce4"+
"\u2ced\u2ced\u2cef\u2cef\u2cf4\u2cf4\ua642\ua642\ua644\ua644\ua646\ua646"+
"\ua648\ua648\ua64a\ua64a\ua64c\ua64c\ua64e\ua64e\ua650\ua650\ua652\ua652"+
"\ua654\ua654\ua656\ua656\ua658\ua658\ua65a\ua65a\ua65c\ua65c\ua65e\ua65e"+
"\ua660\ua660\ua662\ua662\ua664\ua664\ua666\ua666\ua668\ua668\ua66a\ua66a"+
"\ua66c\ua66c\ua66e\ua66e\ua682\ua682\ua684\ua684\ua686\ua686\ua688\ua688"+
"\ua68a\ua68a\ua68c\ua68c\ua68e\ua68e\ua690\ua690\ua692\ua692\ua694\ua694"+
"\ua696\ua696\ua698\ua698\ua724\ua724\ua726\ua726\ua728\ua728\ua72a\ua72a"+
"\ua72c\ua72c\ua72e\ua72e\ua730\ua730\ua734\ua734\ua736\ua736\ua738\ua738"+
"\ua73a\ua73a\ua73c\ua73c\ua73e\ua73e\ua740\ua740\ua742\ua742\ua744\ua744"+
"\ua746\ua746\ua748\ua748\ua74a\ua74a\ua74c\ua74c\ua74e\ua74e\ua750\ua750"+
"\ua752\ua752\ua754\ua754\ua756\ua756\ua758\ua758\ua75a\ua75a\ua75c\ua75c"+
"\ua75e\ua75e\ua760\ua760\ua762\ua762\ua764\ua764\ua766\ua766\ua768\ua768"+
"\ua76a\ua76a\ua76c\ua76c\ua76e\ua76e\ua770\ua770\ua77b\ua77b\ua77d\ua77d"+
"\ua77f\ua780\ua782\ua782\ua784\ua784\ua786\ua786\ua788\ua788\ua78d\ua78d"+
"\ua78f\ua78f\ua792\ua792\ua794\ua794\ua7a2\ua7a2\ua7a4\ua7a4\ua7a6\ua7a6"+
"\ua7a8\ua7a8\ua7aa\ua7aa\ua7ac\ua7ac\uff23\uff3c%\2\62;\u0662\u066b\u06f2"+
"\u06fb\u07c2\u07cb\u0968\u0971\u09e8\u09f1\u0a68\u0a71\u0ae8\u0af1\u0b68"+
"\u0b71\u0be8\u0bf1\u0c68\u0c71\u0ce8\u0cf1\u0d68\u0d71\u0e52\u0e5b\u0ed2"+
"\u0edb\u0f22\u0f2b\u1042\u104b\u1092\u109b\u17e2\u17eb\u1812\u181b\u1948"+
"\u1951\u19d2\u19db\u1a82\u1a8b\u1a92\u1a9b\u1b52\u1b5b\u1bb2\u1bbb\u1c42"+
"\u1c4b\u1c52\u1c5b\ua622\ua62b\ua8d2\ua8db\ua902\ua90b\ua9d2\ua9db\uaa52"+
"\uaa5b\uabf2\uabfb\uff12\uff1b\t\2\u16f0\u16f2\u2162\u2184\u2187\u218a"+
"\u3009\u3009\u3023\u302b\u303a\u303c\ua6e8\ua6f1\2\36\2\3\3\2\2\2\2\5"+
"\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2"+
"\3\21\3\2\2\2\5\23\3\2\2\2\7\25\3\2\2\2\t\27\3\2\2\2\13\31\3\2\2\2\r\33"+
"\3\2\2\2\17\35\3\2\2\2\21\22\t\2\2\2\22\4\3\2\2\2\23\24\t\3\2\2\24\6\3"+
"\2\2\2\25\26\t\4\2\2\26\b\3\2\2\2\27\30\t\5\2\2\30\n\3\2\2\2\31\32\t\6"+
"\2\2\32\f\3\2\2\2\33\34\t\7\2\2\34\16\3\2\2\2\35\36\t\b\2\2\36\20\3\2"+
"\2\2\3\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
@@ -30,7 +30,9 @@
lexer grammar XMLLexer;
// Default "mode": Everything OUTSIDE of a tag
COLON : ':' ;
COLON : ':' ;
NOT : '!' ;
DASH : '-' ;
COMMENT : '<!--' .*? '-->' ;
CDATA : '<![CDATA[' .*? ']]>' ;
/** Scarf all DTD stuff, Entity Declarations like <!ENTITY ...>,
File diff suppressed because one or more lines are too long
@@ -1,267 +1,209 @@
// Generated from XMLLexer.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Lexer;
import org.antlr.v4.runtime.RuntimeMetaData;
import org.antlr.v4.runtime.Vocabulary;
import org.antlr.v4.runtime.VocabularyImpl;
import org.antlr.v4.runtime.atn.ATN;
import org.antlr.v4.runtime.atn.ATNDeserializer;
import org.antlr.v4.runtime.atn.LexerATNSimulator;
import org.antlr.v4.runtime.atn.PredictionContextCache;
import org.antlr.v4.runtime.CharStream;
import org.antlr.v4.runtime.Token;
import org.antlr.v4.runtime.TokenStream;
import org.antlr.v4.runtime.*;
import org.antlr.v4.runtime.atn.*;
import org.antlr.v4.runtime.dfa.DFA;
import org.antlr.v4.runtime.misc.*;
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
public class XMLLexer extends Lexer {
public static final int COLON = 1,
COMMENT = 2,
CDATA = 3,
DTD = 4,
EntityRef = 5,
CharRef = 6,
SEA_WS = 7,
OPEN = 8,
OPEN_SLASH = 9,
XMLDeclOpen = 10,
TEXT = 11,
CLOSE = 12,
SPECIAL_CLOSE = 13,
SLASH_CLOSE = 14,
SLASH = 15,
EQUALS = 16,
STRING = 17,
Name = 18,
S = 19,
PI = 20;
public static final int INSIDE = 1, PROC_INSTR = 2;
public static final String[] ruleNames = makeRuleNames();
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated public static final String[] tokenNames;
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\26\u00f4\b\1\b\1"
+ "\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4"
+ "\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t"
+ "\21\4\22\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t"
+ "\30\4\31\t\31\4\32\t\32\4\33\t\33\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\7\3"
+ "B\n\3\f\3\16\3E\13\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3"
+ "\4\3\4\3\4\7\4V\n\4\f\4\16\4Y\13\4\3\4\3\4\3\4\3\4\3\5\3\5\3\5\3\5\7\5"
+ "c\n\5\f\5\16\5f\13\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\6"
+ "\7t\n\7\r\7\16\7u\3\7\3\7\3\7\3\7\3\7\3\7\3\7\6\7\177\n\7\r\7\16\7\u0080"
+ "\3\7\3\7\5\7\u0085\n\7\3\b\3\b\5\b\u0089\n\b\3\b\6\b\u008c\n\b\r\b\16"
+ "\b\u008d\3\t\3\t\3\t\3\t\3\n\3\n\3\n\3\n\3\n\3\13\3\13\3\13\3\13\3\13"
+ "\3\13\3\13\3\13\3\13\3\13\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\f\3\r\6\r\u00ac"
+ "\n\r\r\r\16\r\u00ad\3\16\3\16\3\16\3\16\3\17\3\17\3\17\3\17\3\17\3\20"
+ "\3\20\3\20\3\20\3\20\3\21\3\21\3\22\3\22\3\23\3\23\7\23\u00c4\n\23\f\23"
+ "\16\23\u00c7\13\23\3\23\3\23\3\23\7\23\u00cc\n\23\f\23\16\23\u00cf\13"
+ "\23\3\23\5\23\u00d2\n\23\3\24\3\24\7\24\u00d6\n\24\f\24\16\24\u00d9\13"
+ "\24\3\25\3\25\3\25\3\25\3\26\3\26\3\27\3\27\3\30\3\30\3\30\3\30\5\30\u00e7"
+ "\n\30\3\31\5\31\u00ea\n\31\3\32\3\32\3\32\3\32\3\32\3\33\3\33\3\33\3\33"
+ "\5CWd\2\34\5\3\7\4\t\5\13\6\r\7\17\b\21\t\23\n\25\13\27\f\31\2\33\r\35"
+ "\16\37\17!\20#\21%\22\'\23)\24+\25-\2/\2\61\2\63\2\65\26\67\2\5\2\3\4"
+ "\f\4\2\13\13\"\"\4\2((>>\4\2$$>>\4\2))>>\5\2\13\f\17\17\"\"\5\2\62;CH"
+ "ch\3\2\62;\4\2/\60aa\5\2\u00b9\u00b9\u0302\u0371\u2041\u2042\n\2<<C\\"
+ "c|\u2072\u2191\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff\2\u00fe"
+ "\2\5\3\2\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2"
+ "\2\2\2\21\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2"
+ "\2\33\3\2\2\2\3\35\3\2\2\2\3\37\3\2\2\2\3!\3\2\2\2\3#\3\2\2\2\3%\3\2\2"
+ "\2\3\'\3\2\2\2\3)\3\2\2\2\3+\3\2\2\2\4\65\3\2\2\2\4\67\3\2\2\2\59\3\2"
+ "\2\2\7;\3\2\2\2\tJ\3\2\2\2\13^\3\2\2\2\rk\3\2\2\2\17\u0084\3\2\2\2\21"
+ "\u008b\3\2\2\2\23\u008f\3\2\2\2\25\u0093\3\2\2\2\27\u0098\3\2\2\2\31\u00a2"
+ "\3\2\2\2\33\u00ab\3\2\2\2\35\u00af\3\2\2\2\37\u00b3\3\2\2\2!\u00b8\3\2"
+ "\2\2#\u00bd\3\2\2\2%\u00bf\3\2\2\2\'\u00d1\3\2\2\2)\u00d3\3\2\2\2+\u00da"
+ "\3\2\2\2-\u00de\3\2\2\2/\u00e0\3\2\2\2\61\u00e6\3\2\2\2\63\u00e9\3\2\2"
+ "\2\65\u00eb\3\2\2\2\67\u00f0\3\2\2\29:\7<\2\2:\6\3\2\2\2;<\7>\2\2<=\7"
+ "#\2\2=>\7/\2\2>?\7/\2\2?C\3\2\2\2@B\13\2\2\2A@\3\2\2\2BE\3\2\2\2CD\3\2"
+ "\2\2CA\3\2\2\2DF\3\2\2\2EC\3\2\2\2FG\7/\2\2GH\7/\2\2HI\7@\2\2I\b\3\2\2"
+ "\2JK\7>\2\2KL\7#\2\2LM\7]\2\2MN\7E\2\2NO\7F\2\2OP\7C\2\2PQ\7V\2\2QR\7"
+ "C\2\2RS\7]\2\2SW\3\2\2\2TV\13\2\2\2UT\3\2\2\2VY\3\2\2\2WX\3\2\2\2WU\3"
+ "\2\2\2XZ\3\2\2\2YW\3\2\2\2Z[\7_\2\2[\\\7_\2\2\\]\7@\2\2]\n\3\2\2\2^_\7"
+ ">\2\2_`\7#\2\2`d\3\2\2\2ac\13\2\2\2ba\3\2\2\2cf\3\2\2\2de\3\2\2\2db\3"
+ "\2\2\2eg\3\2\2\2fd\3\2\2\2gh\7@\2\2hi\3\2\2\2ij\b\5\2\2j\f\3\2\2\2kl\7"
+ "(\2\2lm\5)\24\2mn\7=\2\2n\16\3\2\2\2op\7(\2\2pq\7%\2\2qs\3\2\2\2rt\5/"
+ "\27\2sr\3\2\2\2tu\3\2\2\2us\3\2\2\2uv\3\2\2\2vw\3\2\2\2wx\7=\2\2x\u0085"
+ "\3\2\2\2yz\7(\2\2z{\7%\2\2{|\7z\2\2|~\3\2\2\2}\177\5-\26\2~}\3\2\2\2\177"
+ "\u0080\3\2\2\2\u0080~\3\2\2\2\u0080\u0081\3\2\2\2\u0081\u0082\3\2\2\2"
+ "\u0082\u0083\7=\2\2\u0083\u0085\3\2\2\2\u0084o\3\2\2\2\u0084y\3\2\2\2"
+ "\u0085\20\3\2\2\2\u0086\u008c\t\2\2\2\u0087\u0089\7\17\2\2\u0088\u0087"
+ "\3\2\2\2\u0088\u0089\3\2\2\2\u0089\u008a\3\2\2\2\u008a\u008c\7\f\2\2\u008b"
+ "\u0086\3\2\2\2\u008b\u0088\3\2\2\2\u008c\u008d\3\2\2\2\u008d\u008b\3\2"
+ "\2\2\u008d\u008e\3\2\2\2\u008e\22\3\2\2\2\u008f\u0090\7>\2\2\u0090\u0091"
+ "\3\2\2\2\u0091\u0092\b\t\3\2\u0092\24\3\2\2\2\u0093\u0094\7>\2\2\u0094"
+ "\u0095\7\61\2\2\u0095\u0096\3\2\2\2\u0096\u0097\b\n\3\2\u0097\26\3\2\2"
+ "\2\u0098\u0099\7>\2\2\u0099\u009a\7A\2\2\u009a\u009b\7z\2\2\u009b\u009c"
+ "\7o\2\2\u009c\u009d\7n\2\2\u009d\u009e\3\2\2\2\u009e\u009f\5+\25\2\u009f"
+ "\u00a0\3\2\2\2\u00a0\u00a1\b\13\3\2\u00a1\30\3\2\2\2\u00a2\u00a3\7>\2"
+ "\2\u00a3\u00a4\7A\2\2\u00a4\u00a5\3\2\2\2\u00a5\u00a6\5)\24\2\u00a6\u00a7"
+ "\3\2\2\2\u00a7\u00a8\b\f\4\2\u00a8\u00a9\b\f\5\2\u00a9\32\3\2\2\2\u00aa"
+ "\u00ac\n\3\2\2\u00ab\u00aa\3\2\2\2\u00ac\u00ad\3\2\2\2\u00ad\u00ab\3\2"
+ "\2\2\u00ad\u00ae\3\2\2\2\u00ae\34\3\2\2\2\u00af\u00b0\7@\2\2\u00b0\u00b1"
+ "\3\2\2\2\u00b1\u00b2\b\16\6\2\u00b2\36\3\2\2\2\u00b3\u00b4\7A\2\2\u00b4"
+ "\u00b5\7@\2\2\u00b5\u00b6\3\2\2\2\u00b6\u00b7\b\17\6\2\u00b7 \3\2\2\2"
+ "\u00b8\u00b9\7\61\2\2\u00b9\u00ba\7@\2\2\u00ba\u00bb\3\2\2\2\u00bb\u00bc"
+ "\b\20\6\2\u00bc\"\3\2\2\2\u00bd\u00be\7\61\2\2\u00be$\3\2\2\2\u00bf\u00c0"
+ "\7?\2\2\u00c0&\3\2\2\2\u00c1\u00c5\7$\2\2\u00c2\u00c4\n\4\2\2\u00c3\u00c2"
+ "\3\2\2\2\u00c4\u00c7\3\2\2\2\u00c5\u00c3\3\2\2\2\u00c5\u00c6\3\2\2\2\u00c6"
+ "\u00c8\3\2\2\2\u00c7\u00c5\3\2\2\2\u00c8\u00d2\7$\2\2\u00c9\u00cd\7)\2"
+ "\2\u00ca\u00cc\n\5\2\2\u00cb\u00ca\3\2\2\2\u00cc\u00cf\3\2\2\2\u00cd\u00cb"
+ "\3\2\2\2\u00cd\u00ce\3\2\2\2\u00ce\u00d0\3\2\2\2\u00cf\u00cd\3\2\2\2\u00d0"
+ "\u00d2\7)\2\2\u00d1\u00c1\3\2\2\2\u00d1\u00c9\3\2\2\2\u00d2(\3\2\2\2\u00d3"
+ "\u00d7\5\63\31\2\u00d4\u00d6\5\61\30\2\u00d5\u00d4\3\2\2\2\u00d6\u00d9"
+ "\3\2\2\2\u00d7\u00d5\3\2\2\2\u00d7\u00d8\3\2\2\2\u00d8*\3\2\2\2\u00d9"
+ "\u00d7\3\2\2\2\u00da\u00db\t\6\2\2\u00db\u00dc\3\2\2\2\u00dc\u00dd\b\25"
+ "\2\2\u00dd,\3\2\2\2\u00de\u00df\t\7\2\2\u00df.\3\2\2\2\u00e0\u00e1\t\b"
+ "\2\2\u00e1\60\3\2\2\2\u00e2\u00e7\5\63\31\2\u00e3\u00e7\t\t\2\2\u00e4"
+ "\u00e7\5/\27\2\u00e5\u00e7\t\n\2\2\u00e6\u00e2\3\2\2\2\u00e6\u00e3\3\2"
+ "\2\2\u00e6\u00e4\3\2\2\2\u00e6\u00e5\3\2\2\2\u00e7\62\3\2\2\2\u00e8\u00ea"
+ "\t\13\2\2\u00e9\u00e8\3\2\2\2\u00ea\64\3\2\2\2\u00eb\u00ec\7A\2\2\u00ec"
+ "\u00ed\7@\2\2\u00ed\u00ee\3\2\2\2\u00ee\u00ef\b\32\6\2\u00ef\66\3\2\2"
+ "\2\u00f0\u00f1\13\2\2\2\u00f1\u00f2\3\2\2\2\u00f2\u00f3\b\33\4\2\u00f3"
+ "8\3\2\2\2\25\2\3\4CWdu\u0080\u0084\u0088\u008b\u008d\u00ad\u00c5\u00cd"
+ "\u00d1\u00d7\u00e6\u00e9\7\b\2\2\7\3\2\5\2\2\7\4\2\6\2\2";
public static final ATN _ATN = new ATNDeserializer().deserialize(_serializedATN.toCharArray());
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
public static String[] modeNames = {"DEFAULT_MODE", "INSIDE", "PROC_INSTR"};
static { RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION); }
static {
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
}
protected static final DFA[] _decisionToDFA;
protected static final PredictionContextCache _sharedContextCache =
new PredictionContextCache();
public static final int
COLON=1, NOT=2, DASH=3, COMMENT=4, CDATA=5, DTD=6, EntityRef=7, CharRef=8,
SEA_WS=9, OPEN=10, OPEN_SLASH=11, XMLDeclOpen=12, TEXT=13, CLOSE=14, SPECIAL_CLOSE=15,
SLASH_CLOSE=16, SLASH=17, EQUALS=18, STRING=19, Name=20, S=21, PI=22;
public static final int
INSIDE=1, PROC_INSTR=2;
public static String[] channelNames = {
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
};
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
public static String[] modeNames = {
"DEFAULT_MODE", "INSIDE", "PROC_INSTR"
};
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
private static String[] makeRuleNames() {
return new String[] {
"COLON", "NOT", "DASH", "COMMENT", "CDATA", "DTD", "EntityRef", "CharRef",
"SEA_WS", "OPEN", "OPEN_SLASH", "XMLDeclOpen", "SPECIAL_OPEN", "TEXT",
"CLOSE", "SPECIAL_CLOSE", "SLASH_CLOSE", "SLASH", "EQUALS", "STRING",
"Name", "S", "HEXDIGIT", "DIGIT", "NameChar", "NameStartChar", "PI",
"IGNORE"
};
}
public static final String[] ruleNames = makeRuleNames();
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
private static String[] makeLiteralNames() {
return new String[] {
null, "':'", "'!'", "'-'", null, null, null, null, null, null, "'<'",
"'</'", null, null, "'>'", null, "'/>'", "'/'", "'='"
};
}
private static final String[] _LITERAL_NAMES = makeLiteralNames();
private static String[] makeSymbolicNames() {
return new String[] {
null, "COLON", "NOT", "DASH", "COMMENT", "CDATA", "DTD", "EntityRef",
"CharRef", "SEA_WS", "OPEN", "OPEN_SLASH", "XMLDeclOpen", "TEXT", "CLOSE",
"SPECIAL_CLOSE", "SLASH_CLOSE", "SLASH", "EQUALS", "STRING", "Name",
"S", "PI"
};
}
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
public XMLLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
}
/**
* @deprecated Use {@link #VOCABULARY} instead.
*/
@Deprecated
public static final String[] tokenNames;
static {
tokenNames = new String[_SYMBOLIC_NAMES.length];
for (int i = 0; i < tokenNames.length; i++) {
tokenNames[i] = VOCABULARY.getLiteralName(i);
if (tokenNames[i] == null) {
tokenNames[i] = VOCABULARY.getSymbolicName(i);
}
private static String[] makeRuleNames() {
return new String[] {
"COLON",
"COMMENT",
"CDATA",
"DTD",
"EntityRef",
"CharRef",
"SEA_WS",
"OPEN",
"OPEN_SLASH",
"XMLDeclOpen",
"SPECIAL_OPEN",
"TEXT",
"CLOSE",
"SPECIAL_CLOSE",
"SLASH_CLOSE",
"SLASH",
"EQUALS",
"STRING",
"Name",
"S",
"HEXDIGIT",
"DIGIT",
"NameChar",
"NameStartChar",
"PI",
"IGNORE"
};
}
if (tokenNames[i] == null) {
tokenNames[i] = "<INVALID>";
}
}
}
private static String[] makeLiteralNames() {
return new String[] {
null, "':'", null, null, null, null, null, null, "'<'", "'</'", null, null, "'>'", null,
"'/>'", "'/'", "'='"
};
}
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
private static String[] makeSymbolicNames() {
return new String[] {
null,
"COLON",
"COMMENT",
"CDATA",
"DTD",
"EntityRef",
"CharRef",
"SEA_WS",
"OPEN",
"OPEN_SLASH",
"XMLDeclOpen",
"TEXT",
"CLOSE",
"SPECIAL_CLOSE",
"SLASH_CLOSE",
"SLASH",
"EQUALS",
"STRING",
"Name",
"S",
"PI"
};
}
@Override
@Override
public String[] getRuleNames() {
return ruleNames;
}
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public Vocabulary getVocabulary() {
return VOCABULARY;
}
@Override
public String getSerializedATN() {
return _serializedATN;
}
public XMLLexer(CharStream input) {
super(input);
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
}
@Override
public String getGrammarFileName() {
return "XMLLexer.g4";
}
@Override
public String getGrammarFileName() { return "XMLLexer.g4"; }
@Override
public ATN getATN() {
return _ATN;
}
@Override
public String[] getRuleNames() { return ruleNames; }
@Override
public String[] getChannelNames() {
return channelNames;
}
@Override
public String getSerializedATN() { return _serializedATN; }
@Override
public String[] getModeNames() {
return modeNames;
}
@Override
public String[] getChannelNames() { return channelNames; }
@Override
@Deprecated
public String[] getTokenNames() {
return tokenNames;
}
}
@Override
public String[] getModeNames() { return modeNames; }
@Override
public ATN getATN() { return _ATN; }
public static final String _serializedATN =
"\3\u608b\ua72a\u8133\ub9ed\u417c\u3be7\u7786\u5964\2\30\u00fc\b\1\b\1"+
"\b\1\4\2\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4"+
"\n\t\n\4\13\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t"+
"\21\4\22\t\22\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t"+
"\30\4\31\t\31\4\32\t\32\4\33\t\33\4\34\t\34\4\35\t\35\3\2\3\2\3\3\3\3"+
"\3\4\3\4\3\5\3\5\3\5\3\5\3\5\3\5\7\5J\n\5\f\5\16\5M\13\5\3\5\3\5\3\5\3"+
"\5\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\7\6^\n\6\f\6\16\6a\13\6"+
"\3\6\3\6\3\6\3\6\3\7\3\7\3\7\3\7\7\7k\n\7\f\7\16\7n\13\7\3\7\3\7\3\7\3"+
"\7\3\b\3\b\3\b\3\b\3\t\3\t\3\t\3\t\6\t|\n\t\r\t\16\t}\3\t\3\t\3\t\3\t"+
"\3\t\3\t\3\t\6\t\u0087\n\t\r\t\16\t\u0088\3\t\3\t\5\t\u008d\n\t\3\n\3"+
"\n\5\n\u0091\n\n\3\n\6\n\u0094\n\n\r\n\16\n\u0095\3\13\3\13\3\13\3\13"+
"\3\f\3\f\3\f\3\f\3\f\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\r\3\16\3\16"+
"\3\16\3\16\3\16\3\16\3\16\3\16\3\17\6\17\u00b4\n\17\r\17\16\17\u00b5\3"+
"\20\3\20\3\20\3\20\3\21\3\21\3\21\3\21\3\21\3\22\3\22\3\22\3\22\3\22\3"+
"\23\3\23\3\24\3\24\3\25\3\25\7\25\u00cc\n\25\f\25\16\25\u00cf\13\25\3"+
"\25\3\25\3\25\7\25\u00d4\n\25\f\25\16\25\u00d7\13\25\3\25\5\25\u00da\n"+
"\25\3\26\3\26\7\26\u00de\n\26\f\26\16\26\u00e1\13\26\3\27\3\27\3\27\3"+
"\27\3\30\3\30\3\31\3\31\3\32\3\32\3\32\3\32\5\32\u00ef\n\32\3\33\5\33"+
"\u00f2\n\33\3\34\3\34\3\34\3\34\3\34\3\35\3\35\3\35\3\35\5K_l\2\36\5\3"+
"\7\4\t\5\13\6\r\7\17\b\21\t\23\n\25\13\27\f\31\r\33\16\35\2\37\17!\20"+
"#\21%\22\'\23)\24+\25-\26/\27\61\2\63\2\65\2\67\29\30;\2\5\2\3\4\f\4\2"+
"\13\13\"\"\4\2((>>\4\2$$>>\4\2))>>\5\2\13\f\17\17\"\"\5\2\62;CHch\3\2"+
"\62;\4\2/\60aa\5\2\u00b9\u00b9\u0302\u0371\u2041\u2042\n\2<<C\\c|\u2072"+
"\u2191\u2c02\u2ff1\u3003\ud801\uf902\ufdd1\ufdf2\uffff\2\u0106\2\5\3\2"+
"\2\2\2\7\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21"+
"\3\2\2\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\2\33\3\2"+
"\2\2\2\35\3\2\2\2\2\37\3\2\2\2\3!\3\2\2\2\3#\3\2\2\2\3%\3\2\2\2\3\'\3"+
"\2\2\2\3)\3\2\2\2\3+\3\2\2\2\3-\3\2\2\2\3/\3\2\2\2\49\3\2\2\2\4;\3\2\2"+
"\2\5=\3\2\2\2\7?\3\2\2\2\tA\3\2\2\2\13C\3\2\2\2\rR\3\2\2\2\17f\3\2\2\2"+
"\21s\3\2\2\2\23\u008c\3\2\2\2\25\u0093\3\2\2\2\27\u0097\3\2\2\2\31\u009b"+
"\3\2\2\2\33\u00a0\3\2\2\2\35\u00aa\3\2\2\2\37\u00b3\3\2\2\2!\u00b7\3\2"+
"\2\2#\u00bb\3\2\2\2%\u00c0\3\2\2\2\'\u00c5\3\2\2\2)\u00c7\3\2\2\2+\u00d9"+
"\3\2\2\2-\u00db\3\2\2\2/\u00e2\3\2\2\2\61\u00e6\3\2\2\2\63\u00e8\3\2\2"+
"\2\65\u00ee\3\2\2\2\67\u00f1\3\2\2\29\u00f3\3\2\2\2;\u00f8\3\2\2\2=>\7"+
"<\2\2>\6\3\2\2\2?@\7#\2\2@\b\3\2\2\2AB\7/\2\2B\n\3\2\2\2CD\7>\2\2DE\7"+
"#\2\2EF\7/\2\2FG\7/\2\2GK\3\2\2\2HJ\13\2\2\2IH\3\2\2\2JM\3\2\2\2KL\3\2"+
"\2\2KI\3\2\2\2LN\3\2\2\2MK\3\2\2\2NO\7/\2\2OP\7/\2\2PQ\7@\2\2Q\f\3\2\2"+
"\2RS\7>\2\2ST\7#\2\2TU\7]\2\2UV\7E\2\2VW\7F\2\2WX\7C\2\2XY\7V\2\2YZ\7"+
"C\2\2Z[\7]\2\2[_\3\2\2\2\\^\13\2\2\2]\\\3\2\2\2^a\3\2\2\2_`\3\2\2\2_]"+
"\3\2\2\2`b\3\2\2\2a_\3\2\2\2bc\7_\2\2cd\7_\2\2de\7@\2\2e\16\3\2\2\2fg"+
"\7>\2\2gh\7#\2\2hl\3\2\2\2ik\13\2\2\2ji\3\2\2\2kn\3\2\2\2lm\3\2\2\2lj"+
"\3\2\2\2mo\3\2\2\2nl\3\2\2\2op\7@\2\2pq\3\2\2\2qr\b\7\2\2r\20\3\2\2\2"+
"st\7(\2\2tu\5-\26\2uv\7=\2\2v\22\3\2\2\2wx\7(\2\2xy\7%\2\2y{\3\2\2\2z"+
"|\5\63\31\2{z\3\2\2\2|}\3\2\2\2}{\3\2\2\2}~\3\2\2\2~\177\3\2\2\2\177\u0080"+
"\7=\2\2\u0080\u008d\3\2\2\2\u0081\u0082\7(\2\2\u0082\u0083\7%\2\2\u0083"+
"\u0084\7z\2\2\u0084\u0086\3\2\2\2\u0085\u0087\5\61\30\2\u0086\u0085\3"+
"\2\2\2\u0087\u0088\3\2\2\2\u0088\u0086\3\2\2\2\u0088\u0089\3\2\2\2\u0089"+
"\u008a\3\2\2\2\u008a\u008b\7=\2\2\u008b\u008d\3\2\2\2\u008cw\3\2\2\2\u008c"+
"\u0081\3\2\2\2\u008d\24\3\2\2\2\u008e\u0094\t\2\2\2\u008f\u0091\7\17\2"+
"\2\u0090\u008f\3\2\2\2\u0090\u0091\3\2\2\2\u0091\u0092\3\2\2\2\u0092\u0094"+
"\7\f\2\2\u0093\u008e\3\2\2\2\u0093\u0090\3\2\2\2\u0094\u0095\3\2\2\2\u0095"+
"\u0093\3\2\2\2\u0095\u0096\3\2\2\2\u0096\26\3\2\2\2\u0097\u0098\7>\2\2"+
"\u0098\u0099\3\2\2\2\u0099\u009a\b\13\3\2\u009a\30\3\2\2\2\u009b\u009c"+
"\7>\2\2\u009c\u009d\7\61\2\2\u009d\u009e\3\2\2\2\u009e\u009f\b\f\3\2\u009f"+
"\32\3\2\2\2\u00a0\u00a1\7>\2\2\u00a1\u00a2\7A\2\2\u00a2\u00a3\7z\2\2\u00a3"+
"\u00a4\7o\2\2\u00a4\u00a5\7n\2\2\u00a5\u00a6\3\2\2\2\u00a6\u00a7\5/\27"+
"\2\u00a7\u00a8\3\2\2\2\u00a8\u00a9\b\r\3\2\u00a9\34\3\2\2\2\u00aa\u00ab"+
"\7>\2\2\u00ab\u00ac\7A\2\2\u00ac\u00ad\3\2\2\2\u00ad\u00ae\5-\26\2\u00ae"+
"\u00af\3\2\2\2\u00af\u00b0\b\16\4\2\u00b0\u00b1\b\16\5\2\u00b1\36\3\2"+
"\2\2\u00b2\u00b4\n\3\2\2\u00b3\u00b2\3\2\2\2\u00b4\u00b5\3\2\2\2\u00b5"+
"\u00b3\3\2\2\2\u00b5\u00b6\3\2\2\2\u00b6 \3\2\2\2\u00b7\u00b8\7@\2\2\u00b8"+
"\u00b9\3\2\2\2\u00b9\u00ba\b\20\6\2\u00ba\"\3\2\2\2\u00bb\u00bc\7A\2\2"+
"\u00bc\u00bd\7@\2\2\u00bd\u00be\3\2\2\2\u00be\u00bf\b\21\6\2\u00bf$\3"+
"\2\2\2\u00c0\u00c1\7\61\2\2\u00c1\u00c2\7@\2\2\u00c2\u00c3\3\2\2\2\u00c3"+
"\u00c4\b\22\6\2\u00c4&\3\2\2\2\u00c5\u00c6\7\61\2\2\u00c6(\3\2\2\2\u00c7"+
"\u00c8\7?\2\2\u00c8*\3\2\2\2\u00c9\u00cd\7$\2\2\u00ca\u00cc\n\4\2\2\u00cb"+
"\u00ca\3\2\2\2\u00cc\u00cf\3\2\2\2\u00cd\u00cb\3\2\2\2\u00cd\u00ce\3\2"+
"\2\2\u00ce\u00d0\3\2\2\2\u00cf\u00cd\3\2\2\2\u00d0\u00da\7$\2\2\u00d1"+
"\u00d5\7)\2\2\u00d2\u00d4\n\5\2\2\u00d3\u00d2\3\2\2\2\u00d4\u00d7\3\2"+
"\2\2\u00d5\u00d3\3\2\2\2\u00d5\u00d6\3\2\2\2\u00d6\u00d8\3\2\2\2\u00d7"+
"\u00d5\3\2\2\2\u00d8\u00da\7)\2\2\u00d9\u00c9\3\2\2\2\u00d9\u00d1\3\2"+
"\2\2\u00da,\3\2\2\2\u00db\u00df\5\67\33\2\u00dc\u00de\5\65\32\2\u00dd"+
"\u00dc\3\2\2\2\u00de\u00e1\3\2\2\2\u00df\u00dd\3\2\2\2\u00df\u00e0\3\2"+
"\2\2\u00e0.\3\2\2\2\u00e1\u00df\3\2\2\2\u00e2\u00e3\t\6\2\2\u00e3\u00e4"+
"\3\2\2\2\u00e4\u00e5\b\27\2\2\u00e5\60\3\2\2\2\u00e6\u00e7\t\7\2\2\u00e7"+
"\62\3\2\2\2\u00e8\u00e9\t\b\2\2\u00e9\64\3\2\2\2\u00ea\u00ef\5\67\33\2"+
"\u00eb\u00ef\t\t\2\2\u00ec\u00ef\5\63\31\2\u00ed\u00ef\t\n\2\2\u00ee\u00ea"+
"\3\2\2\2\u00ee\u00eb\3\2\2\2\u00ee\u00ec\3\2\2\2\u00ee\u00ed\3\2\2\2\u00ef"+
"\66\3\2\2\2\u00f0\u00f2\t\13\2\2\u00f1\u00f0\3\2\2\2\u00f28\3\2\2\2\u00f3"+
"\u00f4\7A\2\2\u00f4\u00f5\7@\2\2\u00f5\u00f6\3\2\2\2\u00f6\u00f7\b\34"+
"\6\2\u00f7:\3\2\2\2\u00f8\u00f9\13\2\2\2\u00f9\u00fa\3\2\2\2\u00fa\u00fb"+
"\b\35\4\2\u00fb<\3\2\2\2\25\2\3\4K_l}\u0088\u008c\u0090\u0093\u0095\u00b5"+
"\u00cd\u00d5\u00d9\u00df\u00ee\u00f1\7\b\2\2\7\3\2\5\2\2\7\4\2\6\2\2";
public static final ATN _ATN =
new ATNDeserializer().deserialize(_serializedATN.toCharArray());
static {
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
}
}
}
@@ -1,27 +1,31 @@
COLON=1
COMMENT=2
CDATA=3
DTD=4
EntityRef=5
CharRef=6
SEA_WS=7
OPEN=8
OPEN_SLASH=9
XMLDeclOpen=10
TEXT=11
CLOSE=12
SPECIAL_CLOSE=13
SLASH_CLOSE=14
SLASH=15
EQUALS=16
STRING=17
Name=18
S=19
PI=20
NOT=2
DASH=3
COMMENT=4
CDATA=5
DTD=6
EntityRef=7
CharRef=8
SEA_WS=9
OPEN=10
OPEN_SLASH=11
XMLDeclOpen=12
TEXT=13
CLOSE=14
SPECIAL_CLOSE=15
SLASH_CLOSE=16
SLASH=17
EQUALS=18
STRING=19
Name=20
S=21
PI=22
':'=1
'<'=8
'</'=9
'>'=12
'/>'=14
'/'=15
'='=16
'!'=2
'-'=3
'<'=10
'</'=11
'>'=14
'/>'=16
'/'=17
'='=18
@@ -1,6 +1,8 @@
token literal names:
null
':'
'!'
'-'
null
null
null
@@ -24,6 +26,8 @@ null
token symbolic names:
null
COLON
NOT
DASH
COMMENT
CDATA
DTD
@@ -59,4 +63,4 @@ misc
atn:
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 22, 112, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 3, 2, 5, 2, 26, 10, 2, 3, 2, 7, 2, 29, 10, 2, 12, 2, 14, 2, 32, 11, 2, 3, 2, 3, 2, 7, 2, 36, 10, 2, 12, 2, 14, 2, 39, 11, 2, 3, 3, 3, 3, 7, 3, 43, 10, 3, 12, 3, 14, 3, 46, 11, 3, 3, 3, 3, 3, 3, 4, 5, 4, 51, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 58, 10, 4, 3, 4, 5, 4, 61, 10, 4, 7, 4, 63, 10, 4, 12, 4, 14, 4, 66, 11, 4, 3, 5, 3, 5, 5, 5, 70, 10, 5, 3, 6, 3, 6, 3, 6, 7, 6, 75, 10, 6, 12, 6, 14, 6, 78, 11, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 7, 7, 89, 10, 7, 12, 7, 14, 7, 92, 11, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 5, 9, 99, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 2, 2, 13, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 2, 5, 3, 2, 7, 8, 4, 2, 9, 9, 13, 13, 5, 2, 4, 4, 9, 9, 22, 22, 2, 115, 2, 25, 3, 2, 2, 2, 4, 40, 3, 2, 2, 2, 6, 50, 3, 2, 2, 2, 8, 69, 3, 2, 2, 2, 10, 71, 3, 2, 2, 2, 12, 85, 3, 2, 2, 2, 14, 95, 3, 2, 2, 2, 16, 98, 3, 2, 2, 2, 18, 104, 3, 2, 2, 2, 20, 107, 3, 2, 2, 2, 22, 109, 3, 2, 2, 2, 24, 26, 5, 4, 3, 2, 25, 24, 3, 2, 2, 2, 25, 26, 3, 2, 2, 2, 26, 30, 3, 2, 2, 2, 27, 29, 5, 22, 12, 2, 28, 27, 3, 2, 2, 2, 29, 32, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 33, 3, 2, 2, 2, 32, 30, 3, 2, 2, 2, 33, 37, 5, 8, 5, 2, 34, 36, 5, 22, 12, 2, 35, 34, 3, 2, 2, 2, 36, 39, 3, 2, 2, 2, 37, 35, 3, 2, 2, 2, 37, 38, 3, 2, 2, 2, 38, 3, 3, 2, 2, 2, 39, 37, 3, 2, 2, 2, 40, 44, 7, 12, 2, 2, 41, 43, 5, 16, 9, 2, 42, 41, 3, 2, 2, 2, 43, 46, 3, 2, 2, 2, 44, 42, 3, 2, 2, 2, 44, 45, 3, 2, 2, 2, 45, 47, 3, 2, 2, 2, 46, 44, 3, 2, 2, 2, 47, 48, 7, 15, 2, 2, 48, 5, 3, 2, 2, 2, 49, 51, 5, 20, 11, 2, 50, 49, 3, 2, 2, 2, 50, 51, 3, 2, 2, 2, 51, 64, 3, 2, 2, 2, 52, 58, 5, 8, 5, 2, 53, 58, 5, 14, 8, 2, 54, 58, 7, 5, 2, 2, 55, 58, 7, 22, 2, 2, 56, 58, 7, 4, 2, 2, 57, 52, 3, 2, 2, 2, 57, 53, 3, 2, 2, 2, 57, 54, 3, 2, 2, 2, 57, 55, 3, 2, 2, 2, 57, 56, 3, 2, 2, 2, 58, 60, 3, 2, 2, 2, 59, 61, 5, 20, 11, 2, 60, 59, 3, 2, 2, 2, 60, 61, 3, 2, 2, 2, 61, 63, 3, 2, 2, 2, 62, 57, 3, 2, 2, 2, 63, 66, 3, 2, 2, 2, 64, 62, 3, 2, 2, 2, 64, 65, 3, 2, 2, 2, 65, 7, 3, 2, 2, 2, 66, 64, 3, 2, 2, 2, 67, 70, 5, 10, 6, 2, 68, 70, 5, 12, 7, 2, 69, 67, 3, 2, 2, 2, 69, 68, 3, 2, 2, 2, 70, 9, 3, 2, 2, 2, 71, 72, 7, 10, 2, 2, 72, 76, 7, 20, 2, 2, 73, 75, 5, 16, 9, 2, 74, 73, 3, 2, 2, 2, 75, 78, 3, 2, 2, 2, 76, 74, 3, 2, 2, 2, 76, 77, 3, 2, 2, 2, 77, 79, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 79, 80, 7, 14, 2, 2, 80, 81, 5, 6, 4, 2, 81, 82, 7, 11, 2, 2, 82, 83, 7, 20, 2, 2, 83, 84, 7, 14, 2, 2, 84, 11, 3, 2, 2, 2, 85, 86, 7, 10, 2, 2, 86, 90, 7, 20, 2, 2, 87, 89, 5, 16, 9, 2, 88, 87, 3, 2, 2, 2, 89, 92, 3, 2, 2, 2, 90, 88, 3, 2, 2, 2, 90, 91, 3, 2, 2, 2, 91, 93, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 93, 94, 7, 16, 2, 2, 94, 13, 3, 2, 2, 2, 95, 96, 9, 2, 2, 2, 96, 15, 3, 2, 2, 2, 97, 99, 5, 18, 10, 2, 98, 97, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 101, 7, 20, 2, 2, 101, 102, 7, 18, 2, 2, 102, 103, 7, 19, 2, 2, 103, 17, 3, 2, 2, 2, 104, 105, 7, 20, 2, 2, 105, 106, 7, 3, 2, 2, 106, 19, 3, 2, 2, 2, 107, 108, 9, 3, 2, 2, 108, 21, 3, 2, 2, 2, 109, 110, 9, 4, 2, 2, 110, 23, 3, 2, 2, 2, 14, 25, 30, 37, 44, 50, 57, 60, 64, 69, 76, 90, 98]
[3, 24715, 42794, 33075, 47597, 16764, 15335, 30598, 22884, 3, 24, 112, 4, 2, 9, 2, 4, 3, 9, 3, 4, 4, 9, 4, 4, 5, 9, 5, 4, 6, 9, 6, 4, 7, 9, 7, 4, 8, 9, 8, 4, 9, 9, 9, 4, 10, 9, 10, 4, 11, 9, 11, 4, 12, 9, 12, 3, 2, 5, 2, 26, 10, 2, 3, 2, 7, 2, 29, 10, 2, 12, 2, 14, 2, 32, 11, 2, 3, 2, 3, 2, 7, 2, 36, 10, 2, 12, 2, 14, 2, 39, 11, 2, 3, 3, 3, 3, 7, 3, 43, 10, 3, 12, 3, 14, 3, 46, 11, 3, 3, 3, 3, 3, 3, 4, 5, 4, 51, 10, 4, 3, 4, 3, 4, 3, 4, 3, 4, 3, 4, 5, 4, 58, 10, 4, 3, 4, 5, 4, 61, 10, 4, 7, 4, 63, 10, 4, 12, 4, 14, 4, 66, 11, 4, 3, 5, 3, 5, 5, 5, 70, 10, 5, 3, 6, 3, 6, 3, 6, 7, 6, 75, 10, 6, 12, 6, 14, 6, 78, 11, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 6, 3, 7, 3, 7, 3, 7, 7, 7, 89, 10, 7, 12, 7, 14, 7, 92, 11, 7, 3, 7, 3, 7, 3, 8, 3, 8, 3, 9, 5, 9, 99, 10, 9, 3, 9, 3, 9, 3, 9, 3, 9, 3, 10, 3, 10, 3, 10, 3, 11, 3, 11, 3, 12, 3, 12, 3, 12, 2, 2, 13, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 2, 5, 3, 2, 9, 10, 4, 2, 11, 11, 15, 15, 5, 2, 6, 6, 11, 11, 24, 24, 2, 115, 2, 25, 3, 2, 2, 2, 4, 40, 3, 2, 2, 2, 6, 50, 3, 2, 2, 2, 8, 69, 3, 2, 2, 2, 10, 71, 3, 2, 2, 2, 12, 85, 3, 2, 2, 2, 14, 95, 3, 2, 2, 2, 16, 98, 3, 2, 2, 2, 18, 104, 3, 2, 2, 2, 20, 107, 3, 2, 2, 2, 22, 109, 3, 2, 2, 2, 24, 26, 5, 4, 3, 2, 25, 24, 3, 2, 2, 2, 25, 26, 3, 2, 2, 2, 26, 30, 3, 2, 2, 2, 27, 29, 5, 22, 12, 2, 28, 27, 3, 2, 2, 2, 29, 32, 3, 2, 2, 2, 30, 28, 3, 2, 2, 2, 30, 31, 3, 2, 2, 2, 31, 33, 3, 2, 2, 2, 32, 30, 3, 2, 2, 2, 33, 37, 5, 8, 5, 2, 34, 36, 5, 22, 12, 2, 35, 34, 3, 2, 2, 2, 36, 39, 3, 2, 2, 2, 37, 35, 3, 2, 2, 2, 37, 38, 3, 2, 2, 2, 38, 3, 3, 2, 2, 2, 39, 37, 3, 2, 2, 2, 40, 44, 7, 14, 2, 2, 41, 43, 5, 16, 9, 2, 42, 41, 3, 2, 2, 2, 43, 46, 3, 2, 2, 2, 44, 42, 3, 2, 2, 2, 44, 45, 3, 2, 2, 2, 45, 47, 3, 2, 2, 2, 46, 44, 3, 2, 2, 2, 47, 48, 7, 17, 2, 2, 48, 5, 3, 2, 2, 2, 49, 51, 5, 20, 11, 2, 50, 49, 3, 2, 2, 2, 50, 51, 3, 2, 2, 2, 51, 64, 3, 2, 2, 2, 52, 58, 5, 8, 5, 2, 53, 58, 5, 14, 8, 2, 54, 58, 7, 7, 2, 2, 55, 58, 7, 24, 2, 2, 56, 58, 7, 6, 2, 2, 57, 52, 3, 2, 2, 2, 57, 53, 3, 2, 2, 2, 57, 54, 3, 2, 2, 2, 57, 55, 3, 2, 2, 2, 57, 56, 3, 2, 2, 2, 58, 60, 3, 2, 2, 2, 59, 61, 5, 20, 11, 2, 60, 59, 3, 2, 2, 2, 60, 61, 3, 2, 2, 2, 61, 63, 3, 2, 2, 2, 62, 57, 3, 2, 2, 2, 63, 66, 3, 2, 2, 2, 64, 62, 3, 2, 2, 2, 64, 65, 3, 2, 2, 2, 65, 7, 3, 2, 2, 2, 66, 64, 3, 2, 2, 2, 67, 70, 5, 10, 6, 2, 68, 70, 5, 12, 7, 2, 69, 67, 3, 2, 2, 2, 69, 68, 3, 2, 2, 2, 70, 9, 3, 2, 2, 2, 71, 72, 7, 12, 2, 2, 72, 76, 7, 22, 2, 2, 73, 75, 5, 16, 9, 2, 74, 73, 3, 2, 2, 2, 75, 78, 3, 2, 2, 2, 76, 74, 3, 2, 2, 2, 76, 77, 3, 2, 2, 2, 77, 79, 3, 2, 2, 2, 78, 76, 3, 2, 2, 2, 79, 80, 7, 16, 2, 2, 80, 81, 5, 6, 4, 2, 81, 82, 7, 13, 2, 2, 82, 83, 7, 22, 2, 2, 83, 84, 7, 16, 2, 2, 84, 11, 3, 2, 2, 2, 85, 86, 7, 12, 2, 2, 86, 90, 7, 22, 2, 2, 87, 89, 5, 16, 9, 2, 88, 87, 3, 2, 2, 2, 89, 92, 3, 2, 2, 2, 90, 88, 3, 2, 2, 2, 90, 91, 3, 2, 2, 2, 91, 93, 3, 2, 2, 2, 92, 90, 3, 2, 2, 2, 93, 94, 7, 18, 2, 2, 94, 13, 3, 2, 2, 2, 95, 96, 9, 2, 2, 2, 96, 15, 3, 2, 2, 2, 97, 99, 5, 18, 10, 2, 98, 97, 3, 2, 2, 2, 98, 99, 3, 2, 2, 2, 99, 100, 3, 2, 2, 2, 100, 101, 7, 22, 2, 2, 101, 102, 7, 20, 2, 2, 102, 103, 7, 21, 2, 2, 103, 17, 3, 2, 2, 2, 104, 105, 7, 22, 2, 2, 105, 106, 7, 3, 2, 2, 106, 19, 3, 2, 2, 2, 107, 108, 9, 3, 2, 2, 108, 21, 3, 2, 2, 2, 109, 110, 9, 4, 2, 2, 110, 23, 3, 2, 2, 2, 14, 25, 30, 37, 44, 50, 57, 60, 64, 69, 76, 90, 98]
File diff suppressed because it is too large Load Diff
@@ -1,27 +1,31 @@
COLON=1
COMMENT=2
CDATA=3
DTD=4
EntityRef=5
CharRef=6
SEA_WS=7
OPEN=8
OPEN_SLASH=9
XMLDeclOpen=10
TEXT=11
CLOSE=12
SPECIAL_CLOSE=13
SLASH_CLOSE=14
SLASH=15
EQUALS=16
STRING=17
Name=18
S=19
PI=20
NOT=2
DASH=3
COMMENT=4
CDATA=5
DTD=6
EntityRef=7
CharRef=8
SEA_WS=9
OPEN=10
OPEN_SLASH=11
XMLDeclOpen=12
TEXT=13
CLOSE=14
SPECIAL_CLOSE=15
SLASH_CLOSE=16
SLASH=17
EQUALS=18
STRING=19
Name=20
S=21
PI=22
':'=1
'<'=8
'</'=9
'>'=12
'/>'=14
'/'=15
'='=16
'!'=2
'-'=3
'<'=10
'</'=11
'>'=14
'/>'=16
'/'=17
'='=18
@@ -6,194 +6,166 @@ import org.antlr.v4.runtime.tree.ErrorNode;
import org.antlr.v4.runtime.tree.TerminalNode;
/**
* This class provides an empty implementation of {@link XMLParserListener}, which can be extended
* to create a listener which only needs to handle a subset of the available methods.
* This class provides an empty implementation of {@link XMLParserListener},
* which can be extended to create a listener which only needs to handle a subset
* of the available methods.
*/
public class XMLParserBaseListener implements XMLParserListener {
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterDocument(XMLParser.DocumentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitDocument(XMLParser.DocumentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterProlog(XMLParser.PrologContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitProlog(XMLParser.PrologContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterContent(XMLParser.ContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitContent(XMLParser.ContentContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterElement(XMLParser.ElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitElement(XMLParser.ElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterReference(XMLParser.ReferenceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitReference(XMLParser.ReferenceContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterAttribute(XMLParser.AttributeContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitAttribute(XMLParser.AttributeContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterPrefix(XMLParser.PrefixContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitPrefix(XMLParser.PrefixContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterChardata(XMLParser.ChardataContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitChardata(XMLParser.ChardataContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterMisc(XMLParser.MiscContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitMisc(XMLParser.MiscContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterDocument(XMLParser.DocumentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitDocument(XMLParser.DocumentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterProlog(XMLParser.PrologContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitProlog(XMLParser.PrologContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterContent(XMLParser.ContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitContent(XMLParser.ContentContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterElement(XMLParser.ElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitElement(XMLParser.ElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterReference(XMLParser.ReferenceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitReference(XMLParser.ReferenceContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterAttribute(XMLParser.AttributeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitAttribute(XMLParser.AttributeContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterPrefix(XMLParser.PrefixContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitPrefix(XMLParser.PrefixContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterChardata(XMLParser.ChardataContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitChardata(XMLParser.ChardataContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterMisc(XMLParser.MiscContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitMisc(XMLParser.MiscContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitTerminal(TerminalNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void visitErrorNode(ErrorNode node) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void enterEveryRule(ParserRuleContext ctx) {}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.
*/
@Override
public void exitEveryRule(ParserRuleContext ctx) {}
}
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void enterEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void exitEveryRule(ParserRuleContext ctx) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void visitTerminal(TerminalNode node) { }
/**
* {@inheritDoc}
*
* <p>The default implementation does nothing.</p>
*/
@Override public void visitErrorNode(ErrorNode node) { }
}
@@ -1,125 +1,91 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
/**
* This class provides an empty implementation of {@link XMLParserVisitor}, which can be extended to
* create a visitor which only needs to handle a subset of the available methods.
* This class provides an empty implementation of {@link XMLParserVisitor},
* which can be extended to create a visitor which only needs to handle a subset
* of the available methods.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
public class XMLParserBaseVisitor<T> extends AbstractParseTreeVisitor<T>
implements XMLParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitDocument(XMLParser.DocumentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitProlog(XMLParser.PrologContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitContent(XMLParser.ContentContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitElement(XMLParser.ElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitReference(XMLParser.ReferenceContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitAttribute(XMLParser.AttributeContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitPrefix(XMLParser.PrefixContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitChardata(XMLParser.ChardataContext ctx) {
return visitChildren(ctx);
}
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
* ctx}.
*/
@Override
public T visitMisc(XMLParser.MiscContext ctx) {
return visitChildren(ctx);
}
}
public class XMLParserBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements XMLParserVisitor<T> {
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitDocument(XMLParser.DocumentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitProlog(XMLParser.PrologContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitContent(XMLParser.ContentContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitElement(XMLParser.ElementContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitReference(XMLParser.ReferenceContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitAttribute(XMLParser.AttributeContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitPrefix(XMLParser.PrefixContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitChardata(XMLParser.ChardataContext ctx) { return visitChildren(ctx); }
/**
* {@inheritDoc}
*
* <p>The default implementation returns the result of calling
* {@link #visitChildren} on {@code ctx}.</p>
*/
@Override public T visitMisc(XMLParser.MiscContext ctx) { return visitChildren(ctx); }
}
@@ -1,140 +1,120 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.tree.ParseTreeListener;
/** This interface defines a complete listener for a parse tree produced by {@link XMLParser}. */
/**
* This interface defines a complete listener for a parse tree produced by
* {@link XMLParser}.
*/
public interface XMLParserListener extends ParseTreeListener {
/**
* Enter a parse tree produced by {@link XMLParser#document}.
*
* @param ctx the parse tree
*/
void enterDocument(XMLParser.DocumentContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#document}.
*
* @param ctx the parse tree
*/
void exitDocument(XMLParser.DocumentContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#prolog}.
*
* @param ctx the parse tree
*/
void enterProlog(XMLParser.PrologContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#prolog}.
*
* @param ctx the parse tree
*/
void exitProlog(XMLParser.PrologContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#content}.
*
* @param ctx the parse tree
*/
void enterContent(XMLParser.ContentContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#content}.
*
* @param ctx the parse tree
*/
void exitContent(XMLParser.ContentContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#element}.
*
* @param ctx the parse tree
*/
void enterElement(XMLParser.ElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#element}.
*
* @param ctx the parse tree
*/
void exitElement(XMLParser.ElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
*
* @param ctx the parse tree
*/
void enterNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
*
* @param ctx the parse tree
*/
void exitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#emptyClosingElement}.
*
* @param ctx the parse tree
*/
void enterEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#emptyClosingElement}.
*
* @param ctx the parse tree
*/
void exitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#reference}.
*
* @param ctx the parse tree
*/
void enterReference(XMLParser.ReferenceContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#reference}.
*
* @param ctx the parse tree
*/
void exitReference(XMLParser.ReferenceContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#attribute}.
*
* @param ctx the parse tree
*/
void enterAttribute(XMLParser.AttributeContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#attribute}.
*
* @param ctx the parse tree
*/
void exitAttribute(XMLParser.AttributeContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#prefix}.
*
* @param ctx the parse tree
*/
void enterPrefix(XMLParser.PrefixContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#prefix}.
*
* @param ctx the parse tree
*/
void exitPrefix(XMLParser.PrefixContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#chardata}.
*
* @param ctx the parse tree
*/
void enterChardata(XMLParser.ChardataContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#chardata}.
*
* @param ctx the parse tree
*/
void exitChardata(XMLParser.ChardataContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#misc}.
*
* @param ctx the parse tree
*/
void enterMisc(XMLParser.MiscContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#misc}.
*
* @param ctx the parse tree
*/
void exitMisc(XMLParser.MiscContext ctx);
}
/**
* Enter a parse tree produced by {@link XMLParser#document}.
* @param ctx the parse tree
*/
void enterDocument(XMLParser.DocumentContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#document}.
* @param ctx the parse tree
*/
void exitDocument(XMLParser.DocumentContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#prolog}.
* @param ctx the parse tree
*/
void enterProlog(XMLParser.PrologContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#prolog}.
* @param ctx the parse tree
*/
void exitProlog(XMLParser.PrologContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#content}.
* @param ctx the parse tree
*/
void enterContent(XMLParser.ContentContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#content}.
* @param ctx the parse tree
*/
void exitContent(XMLParser.ContentContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#element}.
* @param ctx the parse tree
*/
void enterElement(XMLParser.ElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#element}.
* @param ctx the parse tree
*/
void exitElement(XMLParser.ElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
* @param ctx the parse tree
*/
void enterNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
* @param ctx the parse tree
*/
void exitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#emptyClosingElement}.
* @param ctx the parse tree
*/
void enterEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#emptyClosingElement}.
* @param ctx the parse tree
*/
void exitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#reference}.
* @param ctx the parse tree
*/
void enterReference(XMLParser.ReferenceContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#reference}.
* @param ctx the parse tree
*/
void exitReference(XMLParser.ReferenceContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#attribute}.
* @param ctx the parse tree
*/
void enterAttribute(XMLParser.AttributeContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#attribute}.
* @param ctx the parse tree
*/
void exitAttribute(XMLParser.AttributeContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#prefix}.
* @param ctx the parse tree
*/
void enterPrefix(XMLParser.PrefixContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#prefix}.
* @param ctx the parse tree
*/
void exitPrefix(XMLParser.PrefixContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#chardata}.
* @param ctx the parse tree
*/
void enterChardata(XMLParser.ChardataContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#chardata}.
* @param ctx the parse tree
*/
void exitChardata(XMLParser.ChardataContext ctx);
/**
* Enter a parse tree produced by {@link XMLParser#misc}.
* @param ctx the parse tree
*/
void enterMisc(XMLParser.MiscContext ctx);
/**
* Exit a parse tree produced by {@link XMLParser#misc}.
* @param ctx the parse tree
*/
void exitMisc(XMLParser.MiscContext ctx);
}
@@ -1,90 +1,79 @@
// Generated from XMLParser.g4 by ANTLR 4.9.3
package com.itsaky.androidide.lexers.xml;
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
/**
* This interface defines a complete generic visitor for a parse tree produced by {@link XMLParser}.
* This interface defines a complete generic visitor for a parse tree produced
* by {@link XMLParser}.
*
* @param <T> The return type of the visit operation. Use {@link Void} for operations with no return
* type.
* @param <T> The return type of the visit operation. Use {@link Void} for
* operations with no return type.
*/
public interface XMLParserVisitor<T> extends ParseTreeVisitor<T> {
/**
* Visit a parse tree produced by {@link XMLParser#document}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocument(XMLParser.DocumentContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#prolog}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitProlog(XMLParser.PrologContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#content}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitContent(XMLParser.ContentContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#element}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitElement(XMLParser.ElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#emptyClosingElement}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#reference}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitReference(XMLParser.ReferenceContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#attribute}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitAttribute(XMLParser.AttributeContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#prefix}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrefix(XMLParser.PrefixContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#chardata}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitChardata(XMLParser.ChardataContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#misc}.
*
* @param ctx the parse tree
* @return the visitor result
*/
T visitMisc(XMLParser.MiscContext ctx);
}
/**
* Visit a parse tree produced by {@link XMLParser#document}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitDocument(XMLParser.DocumentContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#prolog}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitProlog(XMLParser.PrologContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#content}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitContent(XMLParser.ContentContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#element}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitElement(XMLParser.ElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#nonEmptyClosingElement}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitNonEmptyClosingElement(XMLParser.NonEmptyClosingElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#emptyClosingElement}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitEmptyClosingElement(XMLParser.EmptyClosingElementContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#reference}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitReference(XMLParser.ReferenceContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#attribute}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitAttribute(XMLParser.AttributeContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#prefix}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitPrefix(XMLParser.PrefixContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#chardata}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitChardata(XMLParser.ChardataContext ctx);
/**
* Visit a parse tree produced by {@link XMLParser#misc}.
* @param ctx the parse tree
* @return the visitor result
*/
T visitMisc(XMLParser.MiscContext ctx);
}