mirror of
https://gitee.com/zhangsken/AndroidIDE.git
synced 2026-10-16 07:49:44 +08:00
Implemented incremental analysis for Java sources (incomplete)
This commit is contained in:
Generated
+3
@@ -641,6 +641,9 @@
|
||||
<option name="METHOD_CALL_CHAIN_WRAP" value="0" />
|
||||
<option name="ASSIGNMENT_WRAP" value="0" />
|
||||
<indentOptions>
|
||||
<option name="INDENT_SIZE" value="2" />
|
||||
<option name="CONTINUATION_INDENT_SIZE" value="4" />
|
||||
<option name="TAB_SIZE" value="2" />
|
||||
<option name="KEEP_INDENTS_ON_EMPTY_LINES" value="true" />
|
||||
</indentOptions>
|
||||
</codeStyleSettings>
|
||||
|
||||
Generated
+15
-15
@@ -11,8 +11,8 @@
|
||||
</profile>
|
||||
</annotationProcessing>
|
||||
<bytecodeTargetLevel target="1.8">
|
||||
<module name="AndroidIDE.actions" target="17" />
|
||||
<module name="AndroidIDE.app" target="17" />
|
||||
<module name="AndroidIDE.actions" target="11" />
|
||||
<module name="AndroidIDE.app" target="11" />
|
||||
<module name="AndroidIDE.build-tools.builder-api" target="11" />
|
||||
<module name="AndroidIDE.build-tools.builder-model" target="11" />
|
||||
<module name="AndroidIDE.build-tools.builder-model-impl" target="11" />
|
||||
@@ -50,23 +50,23 @@
|
||||
<module name="AndroidIDE.build-tools.xml-formatter" target="11" />
|
||||
<module name="AndroidIDE.build-tools.xml-formatter.main" target="11" />
|
||||
<module name="AndroidIDE.build-tools.xml-formatter.test" target="11" />
|
||||
<module name="AndroidIDE.common" target="17" />
|
||||
<module name="AndroidIDE.emulatorview" target="17" />
|
||||
<module name="AndroidIDE.common" target="11" />
|
||||
<module name="AndroidIDE.emulatorview" target="11" />
|
||||
<module name="AndroidIDE.google-java-format" target="1.8" />
|
||||
<module name="AndroidIDE.gradle-plugin" target="17" />
|
||||
<module name="AndroidIDE.gradle-plugin.main" target="17" />
|
||||
<module name="AndroidIDE.gradle-plugin.test" target="17" />
|
||||
<module name="AndroidIDE.gradle-plugin" target="11" />
|
||||
<module name="AndroidIDE.gradle-plugin.main" target="11" />
|
||||
<module name="AndroidIDE.gradle-plugin.test" target="11" />
|
||||
<module name="AndroidIDE.gradle-tooling" target="1.8" />
|
||||
<module name="AndroidIDE.gradle-tooling.plugin" target="1.8" />
|
||||
<module name="AndroidIDE.javac" target="1.8" />
|
||||
<module name="AndroidIDE.lexers" target="17" />
|
||||
<module name="AndroidIDE.lsp.api" target="17" />
|
||||
<module name="AndroidIDE.lsp.java" target="17" />
|
||||
<module name="AndroidIDE.lsp.testing" target="17" />
|
||||
<module name="AndroidIDE.lsp.xml" target="17" />
|
||||
<module name="AndroidIDE.sdk-info" target="17" />
|
||||
<module name="AndroidIDE.treeview" target="17" />
|
||||
<module name="AndroidIDE.xml-inflater" target="17" />
|
||||
<module name="AndroidIDE.lexers" target="11" />
|
||||
<module name="AndroidIDE.lsp.api" target="11" />
|
||||
<module name="AndroidIDE.lsp.java" target="11" />
|
||||
<module name="AndroidIDE.lsp.testing" target="11" />
|
||||
<module name="AndroidIDE.lsp.xml" target="11" />
|
||||
<module name="AndroidIDE.sdk-info" target="11" />
|
||||
<module name="AndroidIDE.treeview" target="11" />
|
||||
<module name="AndroidIDE.xml-inflater" target="11" />
|
||||
</bytecodeTargetLevel>
|
||||
</component>
|
||||
</project>
|
||||
Generated
+1
-1
@@ -2,6 +2,6 @@
|
||||
<project version="4">
|
||||
<component name="KtfmtSettings">
|
||||
<option name="enabled" value="true" />
|
||||
<option name="uiFormatterStyle" value="Dropbox" />
|
||||
<option name="uiFormatterStyle" value="Google (internal)" />
|
||||
</component>
|
||||
</project>
|
||||
Generated
+10
@@ -13,6 +13,16 @@
|
||||
<option name="language" value="Java" />
|
||||
<option name="generateVisitor" value="true" />
|
||||
</PerGrammarGenerationSettings>
|
||||
<PerGrammarGenerationSettings>
|
||||
<option name="fileName" value="$PROJECT_DIR$/lexers/src/main/java/com/itsaky/androidide/lexers/java/JavaLexer.g4" />
|
||||
<option name="autoGen" value="true" />
|
||||
<option name="outputDir" value="" />
|
||||
<option name="libDir" value="" />
|
||||
<option name="encoding" value="" />
|
||||
<option name="pkg" value="" />
|
||||
<option name="language" value="Java" />
|
||||
<option name="generateVisitor" value="true" />
|
||||
</PerGrammarGenerationSettings>
|
||||
</list>
|
||||
</option>
|
||||
</component>
|
||||
|
||||
@@ -141,4 +141,12 @@ dependencies {
|
||||
// This is to build the tooling-api-impl project before the app is built
|
||||
// So we always copy the latest JAR file to assets
|
||||
compileOnly project (path: ':build-tools:tooling-api-impl')
|
||||
|
||||
testImplementation common.editor
|
||||
testImplementation tests.junit
|
||||
testImplementation tests.google_truth
|
||||
testImplementation tests.robolectric
|
||||
androidTestImplementation tests.androidx_junit
|
||||
androidTestImplementation tests.androidx_espresso
|
||||
androidTestImplementation tests.google_truth
|
||||
}
|
||||
+641
@@ -0,0 +1,641 @@
|
||||
/*
|
||||
* 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.incremental;
|
||||
|
||||
import android.os.Bundle;
|
||||
import android.os.Handler;
|
||||
import android.os.Looper;
|
||||
import android.os.Message;
|
||||
import android.util.Log;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import java.lang.reflect.Method;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
import java.util.concurrent.locks.Lock;
|
||||
import java.util.concurrent.locks.ReentrantLock;
|
||||
|
||||
import io.github.rosemoe.sora.lang.analysis.IncrementalAnalyzeManager;
|
||||
import io.github.rosemoe.sora.lang.analysis.StyleReceiver;
|
||||
import io.github.rosemoe.sora.lang.styling.CodeBlock;
|
||||
import io.github.rosemoe.sora.lang.styling.Span;
|
||||
import io.github.rosemoe.sora.lang.styling.Spans;
|
||||
import io.github.rosemoe.sora.lang.styling.Styles;
|
||||
import io.github.rosemoe.sora.text.CharPosition;
|
||||
import io.github.rosemoe.sora.text.Content;
|
||||
import io.github.rosemoe.sora.text.ContentReference;
|
||||
import io.github.rosemoe.sora.util.IntPair;
|
||||
import io.github.rosemoe.sora.widget.schemes.EditorColorScheme;
|
||||
|
||||
/**
|
||||
* TODO: Remove this class as soon as our needs are implemented in sora-editor's
|
||||
* AsyncIncrementalAnalyzeManager.
|
||||
*
|
||||
* @author Rose
|
||||
* @author Akash Yadav
|
||||
* @see <a
|
||||
* href="https://github.com/Rosemoe/sora-editor/blob/main/editor/src/main/java/io/github/rosemoe/sora/lang/analysis/AsyncIncrementalAnalyzeManager.java">AsyncIncrementalAnalyzeManager</a>
|
||||
* in <b>sora-editor.</b>
|
||||
*/
|
||||
public abstract class AsyncIncrementalAnalyzeManager<S, T>
|
||||
implements IncrementalAnalyzeManager<S, T> {
|
||||
|
||||
private StyleReceiver receiver;
|
||||
private ContentReference ref;
|
||||
private Bundle extraArguments;
|
||||
private LooperThread thread;
|
||||
private volatile long runCount;
|
||||
private static int sThreadId = 0;
|
||||
private static final int MSG_BASE = 11451400;
|
||||
private static final int MSG_INIT = MSG_BASE + 1;
|
||||
private static final int MSG_MOD = MSG_BASE + 2;
|
||||
private static final int MSG_EXIT = MSG_BASE + 3;
|
||||
|
||||
@NonNull private static final Method clearSpansMethod;
|
||||
|
||||
static {
|
||||
try {
|
||||
final var klass = IncrementalAnalyzeManager.LineTokenizeResult.class;
|
||||
clearSpansMethod = klass.getDeclaredMethod("clearSpans");
|
||||
if (!clearSpansMethod.isAccessible()) {
|
||||
clearSpansMethod.setAccessible(true);
|
||||
}
|
||||
} catch (Throwable err) {
|
||||
throw new RuntimeException(
|
||||
"Cannot access clearSpans() method of LineTokenizeResult. Maybe implementation changed?",
|
||||
err);
|
||||
}
|
||||
}
|
||||
|
||||
private static <S_, T_> LineTokenizeResult<S_, T_> clearSpans(LineTokenizeResult<S_, T_> result) {
|
||||
try {
|
||||
return (LineTokenizeResult<S_, T_>) clearSpansMethod.invoke(result);
|
||||
} catch (Throwable error) {
|
||||
throw new RuntimeException("Cannot invoke clearSpans() method", error);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setReceiver(StyleReceiver receiver) {
|
||||
this.receiver = receiver;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void reset(@NonNull ContentReference content, @NonNull Bundle extraArguments) {
|
||||
this.ref = content;
|
||||
this.extraArguments = extraArguments;
|
||||
rerun();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void insert(CharPosition start, CharPosition end, CharSequence insertedText) {
|
||||
if (thread != null) {
|
||||
increaseRunCount();
|
||||
thread.handler.sendMessage(
|
||||
thread.handler.obtainMessage(
|
||||
MSG_MOD,
|
||||
new TextModification(
|
||||
IntPair.pack(start.line, start.column),
|
||||
IntPair.pack(end.line, end.column),
|
||||
insertedText)));
|
||||
sendUpdate(thread.styles);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(CharPosition start, CharPosition end, CharSequence deletedText) {
|
||||
if (thread != null) {
|
||||
increaseRunCount();
|
||||
thread.handler.sendMessage(
|
||||
thread.handler.obtainMessage(
|
||||
MSG_MOD,
|
||||
new TextModification(
|
||||
IntPair.pack(start.line, start.column),
|
||||
IntPair.pack(end.line, end.column),
|
||||
null)));
|
||||
sendUpdate(thread.styles);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void rerun() {
|
||||
if (thread != null) {
|
||||
thread.callback =
|
||||
() -> {
|
||||
throw new CancelledException();
|
||||
};
|
||||
if (thread.isAlive()) {
|
||||
final var handler = thread.handler;
|
||||
if (handler != null) {
|
||||
handler.sendMessage(Message.obtain(thread.handler, MSG_EXIT));
|
||||
}
|
||||
thread.abort = true;
|
||||
}
|
||||
}
|
||||
final var text = ref.getReference().copyText(false);
|
||||
text.setUndoEnabled(false);
|
||||
thread =
|
||||
new LooperThread(
|
||||
() -> thread.handler.sendMessage(thread.handler.obtainMessage(MSG_INIT, text)));
|
||||
thread.setName("AsyncAnalyzer-" + nextThreadId());
|
||||
increaseRunCount();
|
||||
thread.start();
|
||||
sendUpdate(null);
|
||||
}
|
||||
|
||||
@Override
|
||||
public LineTokenizeResult<S, T> getState(int line) {
|
||||
final var thread = this.thread;
|
||||
if (thread == Thread.currentThread()) {
|
||||
return thread.states.get(line);
|
||||
}
|
||||
throw new SecurityException("Can not get state from non-analytical or abandoned thread");
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncLineTokenizeResult<S, T> tokenizeLine(final CharSequence line, final S state) {
|
||||
throw new UnsupportedOperationException("Use tokenizeLine(CharSequence, int, S) instead.");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Span> generateSpansForLine(final LineTokenizeResult<S, T> tokens) {
|
||||
throw new UnsupportedOperationException(
|
||||
"Use generateSpansForLine(AsyncLineTokenizeResult) instead.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Generate spans for the given tokenization result.
|
||||
*
|
||||
* @param tokens The tokenization result.
|
||||
* @return The spans for the tokens.
|
||||
*/
|
||||
public abstract List<Span> generateSpansForLine(final AsyncLineTokenizeResult<S, T> tokens);
|
||||
|
||||
private synchronized void increaseRunCount() {
|
||||
runCount++;
|
||||
}
|
||||
|
||||
private static synchronized int nextThreadId() {
|
||||
sThreadId++;
|
||||
return sThreadId;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void destroy() {
|
||||
if (thread != null) {
|
||||
thread.callback =
|
||||
() -> {
|
||||
throw new CancelledException();
|
||||
};
|
||||
if (thread.isAlive()) {
|
||||
thread.handler.sendMessage(Message.obtain(thread.handler, MSG_EXIT));
|
||||
thread.abort = true;
|
||||
}
|
||||
}
|
||||
receiver = null;
|
||||
ref = null;
|
||||
extraArguments = null;
|
||||
thread = null;
|
||||
}
|
||||
|
||||
private void sendUpdate(Styles styles) {
|
||||
final var r = receiver;
|
||||
if (r != null) {
|
||||
r.setStyles(this, styles);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Compute code blocks
|
||||
*
|
||||
* @param text The text. can be safely accessed.
|
||||
*/
|
||||
public abstract List<CodeBlock> computeBlocks(Content text, CodeBlockAnalyzeDelegate delegate);
|
||||
|
||||
public Bundle getExtraArguments() {
|
||||
return extraArguments;
|
||||
}
|
||||
|
||||
/** Helper class for analyzing code block */
|
||||
public class CodeBlockAnalyzeDelegate {
|
||||
|
||||
private final LooperThread thread;
|
||||
int suppressSwitch;
|
||||
|
||||
CodeBlockAnalyzeDelegate(@NonNull LooperThread lp) {
|
||||
thread = lp;
|
||||
}
|
||||
|
||||
public void setSuppressSwitch(int suppressSwitch) {
|
||||
this.suppressSwitch = suppressSwitch;
|
||||
}
|
||||
|
||||
void reset() {
|
||||
suppressSwitch = Integer.MAX_VALUE;
|
||||
}
|
||||
|
||||
public boolean isCancelled() {
|
||||
return thread.myRunCount != runCount;
|
||||
}
|
||||
|
||||
public boolean isNotCancelled() {
|
||||
return thread.myRunCount == runCount;
|
||||
}
|
||||
}
|
||||
|
||||
private class LooperThread extends Thread {
|
||||
|
||||
volatile boolean abort;
|
||||
Looper looper;
|
||||
Handler handler;
|
||||
Content shadowed;
|
||||
long myRunCount;
|
||||
|
||||
List<LineTokenizeResult<S, T>> states = new ArrayList<>();
|
||||
Styles styles;
|
||||
LockedSpans spans;
|
||||
Runnable callback;
|
||||
CodeBlockAnalyzeDelegate delegate = new CodeBlockAnalyzeDelegate(this);
|
||||
|
||||
public LooperThread(Runnable callback) {
|
||||
this.callback = callback;
|
||||
}
|
||||
|
||||
private void tryUpdate() {
|
||||
if (!abort) sendUpdate(styles);
|
||||
}
|
||||
|
||||
private void initialize() {
|
||||
styles = new Styles(spans = new LockedSpans());
|
||||
S state = getInitialState();
|
||||
var mdf = spans.modify();
|
||||
for (int i = 0; i < shadowed.getLineCount(); i++) {
|
||||
var line = shadowed.getLine(i);
|
||||
var result = tokenizeLine(line, state);
|
||||
result.line = i;
|
||||
state = result.state;
|
||||
var spans = result.spans != null ? result.spans : generateSpansForLine(result);
|
||||
states.add(clearSpans(result));
|
||||
mdf.addLineAt(i, spans);
|
||||
}
|
||||
styles.blocks = computeBlocks(shadowed, delegate);
|
||||
styles.setSuppressSwitch(delegate.suppressSwitch);
|
||||
tryUpdate();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void run() {
|
||||
Looper.prepare();
|
||||
looper = Looper.myLooper();
|
||||
handler =
|
||||
new Handler(looper) {
|
||||
|
||||
@Override
|
||||
public void handleMessage(@NonNull Message msg) {
|
||||
super.handleMessage(msg);
|
||||
try {
|
||||
myRunCount = runCount;
|
||||
delegate.reset();
|
||||
switch (msg.what) {
|
||||
case MSG_INIT:
|
||||
shadowed = (Content) msg.obj;
|
||||
if (!abort) {
|
||||
initialize();
|
||||
}
|
||||
break;
|
||||
case MSG_MOD:
|
||||
if (!abort) {
|
||||
var mod = (TextModification) msg.obj;
|
||||
int startLine = IntPair.getFirst(mod.start);
|
||||
int endLine = IntPair.getFirst(mod.end);
|
||||
if (mod.changedText == null) {
|
||||
shadowed.delete(
|
||||
IntPair.getFirst(mod.start),
|
||||
IntPair.getSecond(mod.start),
|
||||
IntPair.getFirst(mod.end),
|
||||
IntPair.getSecond(mod.end));
|
||||
S state =
|
||||
startLine == 0 ? getInitialState() : states.get(startLine - 1).state;
|
||||
// Remove states
|
||||
if (endLine >= startLine + 1) {
|
||||
states.subList(startLine + 1, endLine + 1).clear();
|
||||
}
|
||||
var mdf = spans.modify();
|
||||
for (int i = startLine + 1; i <= endLine; i++) {
|
||||
mdf.deleteLineAt(startLine + 1);
|
||||
}
|
||||
int line = startLine;
|
||||
while (line < shadowed.getLineCount()) {
|
||||
var res = tokenizeLine(shadowed.getLine(line), state);
|
||||
res.line = line;
|
||||
mdf.setSpansOnLine(
|
||||
line, res.spans != null ? res.spans : generateSpansForLine(res));
|
||||
var old = states.set(line, clearSpans(res));
|
||||
if (stateEquals(old.state, res.state)) {
|
||||
break;
|
||||
}
|
||||
state = res.state;
|
||||
line++;
|
||||
}
|
||||
} else {
|
||||
shadowed.insert(
|
||||
IntPair.getFirst(mod.start),
|
||||
IntPair.getSecond(mod.start),
|
||||
mod.changedText);
|
||||
S state =
|
||||
startLine == 0 ? getInitialState() : states.get(startLine - 1).state;
|
||||
int line = startLine;
|
||||
var spans = styles.spans.modify();
|
||||
// Add Lines
|
||||
while (line <= endLine) {
|
||||
var res = tokenizeLine(shadowed.getLine(line), state);
|
||||
res.line = line;
|
||||
if (line == startLine) {
|
||||
spans.setSpansOnLine(
|
||||
line, res.spans != null ? res.spans : generateSpansForLine(res));
|
||||
states.set(line, clearSpans(res));
|
||||
} else {
|
||||
spans.addLineAt(
|
||||
line, res.spans != null ? res.spans : generateSpansForLine(res));
|
||||
states.add(line, clearSpans(res));
|
||||
}
|
||||
state = res.state;
|
||||
line++;
|
||||
}
|
||||
// line = end.line + 1, check whether the state equals
|
||||
while (line < shadowed.getLineCount()) {
|
||||
var res = tokenizeLine(shadowed.getLine(line), state);
|
||||
res.line = line;
|
||||
if (stateEquals(res.state, states.get(line).state)) {
|
||||
break;
|
||||
} else {
|
||||
spans.setSpansOnLine(
|
||||
line, res.spans != null ? res.spans : generateSpansForLine(res));
|
||||
states.set(line, clearSpans(res));
|
||||
}
|
||||
line++;
|
||||
}
|
||||
}
|
||||
}
|
||||
styles.blocks = computeBlocks(shadowed, delegate);
|
||||
styles.setSuppressSwitch(delegate.suppressSwitch);
|
||||
tryUpdate();
|
||||
break;
|
||||
case MSG_EXIT:
|
||||
looper.quit();
|
||||
break;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Log.w("AsyncAnalysis", "Thread " + Thread.currentThread().getName() + " failed", e);
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
try {
|
||||
callback.run();
|
||||
Looper.loop();
|
||||
} catch (CancelledException e) {
|
||||
// ignored
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static class LockedSpans implements Spans {
|
||||
|
||||
private final Lock lock;
|
||||
private final List<Line> lines;
|
||||
|
||||
public LockedSpans() {
|
||||
lines = new ArrayList<>(128);
|
||||
lock = new ReentrantLock();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void adjustOnDelete(CharPosition start, CharPosition end) {}
|
||||
|
||||
@Override
|
||||
public void adjustOnInsert(CharPosition start, CharPosition end) {}
|
||||
|
||||
@Override
|
||||
public int getLineCount() {
|
||||
return lines.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Reader read() {
|
||||
return new ReaderImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Modifier modify() {
|
||||
return new ModifierImpl();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean supportsModify() {
|
||||
return true;
|
||||
}
|
||||
|
||||
private static class Line {
|
||||
|
||||
public Lock lock = new ReentrantLock();
|
||||
|
||||
public List<Span> spans;
|
||||
|
||||
public Line() {
|
||||
this(null);
|
||||
}
|
||||
|
||||
public Line(List<Span> s) {
|
||||
spans = s;
|
||||
}
|
||||
}
|
||||
|
||||
private class ReaderImpl implements Spans.Reader {
|
||||
|
||||
private Line line;
|
||||
|
||||
public void moveToLine(int line) {
|
||||
if (line < 0) {
|
||||
if (this.line != null) {
|
||||
this.line.lock.unlock();
|
||||
}
|
||||
this.line = null;
|
||||
} else if (line >= lines.size()) {
|
||||
if (this.line != null) {
|
||||
this.line.lock.unlock();
|
||||
}
|
||||
this.line = null;
|
||||
} else {
|
||||
if (this.line != null) {
|
||||
this.line.lock.unlock();
|
||||
}
|
||||
var locked = false;
|
||||
try {
|
||||
locked = lock.tryLock(100, TimeUnit.MICROSECONDS);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (locked) {
|
||||
try {
|
||||
var obj = lines.get(line);
|
||||
if (obj.lock.tryLock()) {
|
||||
this.line = obj;
|
||||
} else {
|
||||
this.line = null;
|
||||
}
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
} else {
|
||||
this.line = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public int getSpanCount() {
|
||||
return line == null ? 1 : line.spans.size();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Span getSpanAt(int index) {
|
||||
return line == null ? Span.obtain(0, EditorColorScheme.TEXT_NORMAL) : line.spans.get(index);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Span> getSpansOnLine(int line) {
|
||||
var spans = new ArrayList<Span>();
|
||||
var locked = false;
|
||||
try {
|
||||
locked = lock.tryLock(1, TimeUnit.MILLISECONDS);
|
||||
} catch (InterruptedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
if (locked) {
|
||||
Line obj = null;
|
||||
try {
|
||||
if (line < lines.size()) {
|
||||
obj = lines.get(line);
|
||||
}
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
if (obj != null && obj.lock.tryLock()) {
|
||||
try {
|
||||
return Collections.unmodifiableList(obj.spans);
|
||||
} finally {
|
||||
obj.lock.unlock();
|
||||
}
|
||||
} else {
|
||||
spans.add(getSpanAt(0));
|
||||
}
|
||||
} else {
|
||||
spans.add(getSpanAt(0));
|
||||
}
|
||||
return spans;
|
||||
}
|
||||
}
|
||||
|
||||
private class ModifierImpl implements Modifier {
|
||||
|
||||
@Override
|
||||
public void setSpansOnLine(int line, List<Span> spans) {
|
||||
lock.lock();
|
||||
try {
|
||||
while (lines.size() <= line) {
|
||||
var list = new ArrayList<Span>();
|
||||
list.add(Span.obtain(0, EditorColorScheme.TEXT_NORMAL));
|
||||
lines.add(new Line(list));
|
||||
}
|
||||
var obj = lines.get(line);
|
||||
obj.lock.lock();
|
||||
try {
|
||||
obj.spans = spans;
|
||||
} finally {
|
||||
obj.lock.unlock();
|
||||
}
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addLineAt(int line, List<Span> spans) {
|
||||
lock.lock();
|
||||
try {
|
||||
lines.add(line, new Line(spans));
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteLineAt(int line) {
|
||||
lock.lock();
|
||||
try {
|
||||
var obj = lines.get(line);
|
||||
obj.lock.lock();
|
||||
try {
|
||||
lines.remove(line);
|
||||
} finally {
|
||||
obj.lock.unlock();
|
||||
}
|
||||
} finally {
|
||||
lock.unlock();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public static class AsyncLineTokenizeResult<S_, T_> extends LineTokenizeResult<S_, T_> {
|
||||
|
||||
public int line = -1;
|
||||
|
||||
public AsyncLineTokenizeResult(@NonNull final S_ state, @Nullable final List<T_> tokens) {
|
||||
super(state, tokens);
|
||||
}
|
||||
|
||||
public AsyncLineTokenizeResult(
|
||||
@NonNull final S_ state,
|
||||
@Nullable final List<T_> tokens,
|
||||
@Nullable final List<Span> spans) {
|
||||
super(state, tokens, spans);
|
||||
}
|
||||
}
|
||||
|
||||
private static class TextModification {
|
||||
|
||||
private final long start;
|
||||
private final long end;
|
||||
/** null for deletion */
|
||||
private final CharSequence changedText;
|
||||
|
||||
TextModification(long start, long end, CharSequence text) {
|
||||
this.start = start;
|
||||
this.end = end;
|
||||
changedText = text;
|
||||
}
|
||||
}
|
||||
|
||||
private static class CancelledException extends RuntimeException {}
|
||||
}
|
||||
+393
@@ -0,0 +1,393 @@
|
||||
/*
|
||||
* 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.incremental;
|
||||
|
||||
import static com.itsaky.androidide.language.incremental.LineState.INCOMPLETE;
|
||||
import static com.itsaky.androidide.language.incremental.LineState.NORMAL;
|
||||
|
||||
import androidx.annotation.NonNull;
|
||||
|
||||
import com.google.common.base.Preconditions;
|
||||
import com.google.common.collect.EvictingQueue;
|
||||
import com.itsaky.androidide.language.IAnalyzeManager;
|
||||
import com.itsaky.androidide.language.java.JavaIncrementalAnalyzeManager;
|
||||
import com.itsaky.androidide.lexers.java.JavaLexer;
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE;
|
||||
import com.itsaky.androidide.utils.CharSequenceReader;
|
||||
import com.itsaky.androidide.utils.ILogger;
|
||||
import com.itsaky.lsp.models.DiagnosticItem;
|
||||
import com.itsaky.lsp.models.DiagnosticSeverity;
|
||||
|
||||
import org.antlr.v4.runtime.CharStream;
|
||||
import org.antlr.v4.runtime.CharStreams;
|
||||
import org.antlr.v4.runtime.Lexer;
|
||||
import org.antlr.v4.runtime.Token;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import io.github.rosemoe.sora.lang.styling.MappedSpans;
|
||||
import io.github.rosemoe.sora.lang.styling.Span;
|
||||
import io.github.rosemoe.sora.lang.styling.TextStyle;
|
||||
import io.github.rosemoe.sora.util.IntPair;
|
||||
import kotlin.Pair;
|
||||
|
||||
/**
|
||||
* Base class for implementing an {@link AsyncIncrementalAnalyzeManager} in AndroidIDE.
|
||||
*
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
public abstract class BaseIncrementalAnalyzeManager
|
||||
extends AsyncIncrementalAnalyzeManager<LineState, IncrementalToken> implements IAnalyzeManager {
|
||||
|
||||
protected final Lexer lexer;
|
||||
protected final List<DiagnosticItem> ideDiagnostics = new ArrayList<>();
|
||||
protected List<DiagnosticItem> diagnostics = new ArrayList<>();
|
||||
private final int[] multilineStartTypes;
|
||||
private final int[] multilineEndTypes;
|
||||
private static final ILogger LOG = ILogger.newInstance("BaseIncrementalAnalyzeManager");
|
||||
|
||||
public BaseIncrementalAnalyzeManager(final Lexer lexer) {
|
||||
Objects.requireNonNull(lexer, "Cannot create analyzer manager for null lexer");
|
||||
this.lexer = lexer;
|
||||
|
||||
var multilineTokenTypes = getMultilineTokenStartEndTypes();
|
||||
verifyMultilineTypes(multilineTokenTypes);
|
||||
|
||||
this.multilineStartTypes = multilineTokenTypes[0];
|
||||
this.multilineEndTypes = multilineTokenTypes[1];
|
||||
}
|
||||
|
||||
private void verifyMultilineTypes(@NonNull final int[][] types) {
|
||||
Preconditions.checkState(
|
||||
types.length == 2, "There must be exact two inner int[] in multiline token types");
|
||||
|
||||
final var start = types[0];
|
||||
final var end = types[1];
|
||||
Preconditions.checkState(start.length > 0, "Invalid start token types");
|
||||
Preconditions.checkState(end.length > 0, "Invalid end token types");
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
@NonNull
|
||||
private Pair<EvictingQueue<IncrementalToken>, EvictingQueue<IncrementalToken>>
|
||||
createEvictingQueueForTokens() {
|
||||
return new Pair<>(
|
||||
EvictingQueue.create(multilineStartTypes.length),
|
||||
EvictingQueue.create(multilineEndTypes.length));
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private boolean isIncompleteTokenStart(EvictingQueue<IncrementalToken> q) {
|
||||
return matchTokenTypes(this.multilineStartTypes, q);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private boolean isIncompleteTokenEnd(EvictingQueue<IncrementalToken> q) {
|
||||
return matchTokenTypes(this.multilineEndTypes, q);
|
||||
}
|
||||
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
private boolean matchTokenTypes(
|
||||
@NonNull int[] types, @NonNull EvictingQueue<IncrementalToken> tokens) {
|
||||
final var arr = tokens.toArray(new IncrementalToken[0]);
|
||||
for (int i = 0; i < types.length; i++) {
|
||||
if (types[i] != arr[i].getType()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the token types which start and end a multiline token.
|
||||
*
|
||||
* @return A <b>2xn</b> matrix where int[] at index 0 specifies token types which start a
|
||||
* multiline token and int[] 1 specifies tokens which end the multiline token. For example,
|
||||
* <p>[['/', '*'], ['*', '/']].
|
||||
* <p>But instead of characters, there must be token types.
|
||||
* @see JavaIncrementalAnalyzeManager
|
||||
*/
|
||||
protected abstract int[][] getMultilineTokenStartEndTypes();
|
||||
|
||||
/**
|
||||
* Generate spans for the given {@link LineTokenizeResult}.
|
||||
*
|
||||
* @param tokens The tokenization result.
|
||||
* @return The spans for the tokens.
|
||||
*/
|
||||
protected abstract MappedSpans.Builder generateSpans(
|
||||
final AsyncLineTokenizeResult<LineState, IncrementalToken> tokens);
|
||||
|
||||
/**
|
||||
* Called when the analyzer finds an incomplete token in a lne.
|
||||
*
|
||||
* @param token The incomplete token.
|
||||
*/
|
||||
protected abstract void handleIncompleteToken(IncrementalToken token);
|
||||
|
||||
/**
|
||||
* Gets the next token from lexer and return an {@link IncrementalToken}.
|
||||
*
|
||||
* @return The next {@link IncrementalToken}.
|
||||
*/
|
||||
protected IncrementalToken nextToken() {
|
||||
return new IncrementalToken(lexer.nextToken());
|
||||
}
|
||||
|
||||
@NonNull
|
||||
protected CharStream createStream(@NonNull CharSequence source) {
|
||||
Objects.requireNonNull(source);
|
||||
try {
|
||||
return CharStreams.fromReader(new CharSequenceReader(source));
|
||||
} catch (IOException e) {
|
||||
throw new RuntimeException("Cannot create CharStream for source", e);
|
||||
}
|
||||
}
|
||||
|
||||
protected void markDiagnostics(MappedSpans.Builder spans, List<DiagnosticItem> diagnostics) {
|
||||
diagnostics.sort(DiagnosticItem.START_COMPARATOR);
|
||||
for (var d : diagnostics) {
|
||||
if (d == null) {
|
||||
continue;
|
||||
}
|
||||
|
||||
var start = d.getRange().getStart();
|
||||
var end = d.getRange().getEnd();
|
||||
|
||||
try {
|
||||
spans.markProblemRegion(
|
||||
convertToSpanFlag(d.getSeverity()),
|
||||
start.getLine(),
|
||||
start.getColumn(),
|
||||
end.getLine(),
|
||||
end.getColumn());
|
||||
} catch (Throwable e) {
|
||||
// Might happen frequently if user types faster
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Contract(pure = true)
|
||||
private int convertToSpanFlag(@NonNull DiagnosticSeverity severity) {
|
||||
switch (severity) {
|
||||
case WARNING:
|
||||
return Span.FLAG_WARNING;
|
||||
case ERROR:
|
||||
return Span.FLAG_ERROR;
|
||||
case HINT:
|
||||
case INFO:
|
||||
default:
|
||||
return Span.FLAG_TYPO;
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateDiagnostics(@NonNull final List<DiagnosticItem> diagnostics) {
|
||||
this.diagnostics = diagnostics;
|
||||
}
|
||||
|
||||
@NonNull
|
||||
@Override
|
||||
public List<DiagnosticItem> getDiagnostics() {
|
||||
final var result = new ArrayList<>(ideDiagnostics);
|
||||
if (diagnostics != null && !diagnostics.isEmpty()) {
|
||||
result.addAll(diagnostics);
|
||||
}
|
||||
result.sort(DiagnosticItem.START_COMPARATOR);
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public LineState getInitialState() {
|
||||
return new LineState();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean stateEquals(final LineState state, final LineState another) {
|
||||
return state.equals(another);
|
||||
}
|
||||
|
||||
@Override
|
||||
public AsyncLineTokenizeResult<LineState, IncrementalToken> tokenizeLine(
|
||||
final CharSequence line, final LineState state) {
|
||||
LOG.debug("Tokenize lines:", line);
|
||||
final var tokens = new ArrayList<IncrementalToken>();
|
||||
var newState = 0;
|
||||
var stateObj = new LineState();
|
||||
if (state.state == NORMAL) {
|
||||
newState = tokenizeNormal(line, 0, tokens, stateObj);
|
||||
} else if (state.state == INCOMPLETE) {
|
||||
final var result = fillIncomplete(line, tokens);
|
||||
newState = IntPair.getFirst(result);
|
||||
if (newState == NORMAL) {
|
||||
newState = tokenizeNormal(line, IntPair.getSecond(result), tokens, stateObj);
|
||||
} else {
|
||||
newState = INCOMPLETE;
|
||||
}
|
||||
}
|
||||
stateObj.state = newState;
|
||||
return new AsyncLineTokenizeResult<>(stateObj, tokens);
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the <code>state</code> in {@link #tokenizeLine(CharSequence, LineState)} is {@link
|
||||
* LineState#NORMAL}.
|
||||
*
|
||||
* @param line The line source.
|
||||
* @param column The column in <code>line</code>.
|
||||
* @param tokens The list of tokens that must be updated as the <code>line</code> is scanned.
|
||||
* @param st The state object whose state must be after after the <code>line</code> has been
|
||||
* scanned.
|
||||
* @return The new state.
|
||||
*/
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
protected int tokenizeNormal(
|
||||
final CharSequence line,
|
||||
final int column,
|
||||
final List<IncrementalToken> tokens,
|
||||
final LineState st) {
|
||||
lexer.setInputStream(createStream(line));
|
||||
final var queues = createEvictingQueueForTokens();
|
||||
final var start = queues.getFirst();
|
||||
final var end = queues.getSecond();
|
||||
var isInIncompleteToken = false;
|
||||
var state = NORMAL;
|
||||
IncrementalToken token;
|
||||
IncrementalToken incompleteToken = null;
|
||||
|
||||
while ((token = nextToken()) != null) {
|
||||
if (token.getType() == IncrementalToken.EOF) {
|
||||
break;
|
||||
}
|
||||
|
||||
// Skip to the token just after 'column'
|
||||
if (token.getStartIndex() < column) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isInIncompleteToken) {
|
||||
if (token.getStartIndex() == column && !tokens.isEmpty()) {
|
||||
token.type = tokens.get(tokens.size() - 1).getType();
|
||||
}
|
||||
|
||||
tokens.add(token);
|
||||
}
|
||||
start.add(token);
|
||||
end.add(token);
|
||||
final var type = token.getType();
|
||||
if (type == JavaLexer.LBRACE || type == JavaLexer.RBRACE) {
|
||||
st.hasBraces = true;
|
||||
}
|
||||
|
||||
if (start.remainingCapacity() == 0 && isIncompleteTokenStart(start)) {
|
||||
isInIncompleteToken = true;
|
||||
incompleteToken = start.poll();
|
||||
|
||||
// Comment starts from the '/' token
|
||||
// So we have to remove the '*' token after '/'
|
||||
tokens.remove(tokens.size() - 1);
|
||||
} else if (end.remainingCapacity() == 0 && isIncompleteTokenEnd(end)) {
|
||||
// This should most probably not happen because, if a comment starts and ends on the same
|
||||
// line, the lexer will create a token for the whole comment
|
||||
// But still we handle this case...
|
||||
isInIncompleteToken = false;
|
||||
incompleteToken = null;
|
||||
}
|
||||
|
||||
if (isInIncompleteToken) {
|
||||
state = INCOMPLETE;
|
||||
}
|
||||
}
|
||||
|
||||
if (incompleteToken != null) {
|
||||
incompleteToken.incomplete = true;
|
||||
handleIncompleteToken(incompleteToken);
|
||||
}
|
||||
|
||||
return state;
|
||||
}
|
||||
|
||||
/**
|
||||
* Called when the <code>state</code> in {@link #tokenizeLine(CharSequence, LineState)} is {@link
|
||||
* LineState#INCOMPLETE}.
|
||||
*
|
||||
* @param line The line source.
|
||||
* @param tokens The list of tokens that must be updated as the <code>line</code> is scanned.
|
||||
* @return The state and offset.
|
||||
*/
|
||||
@SuppressWarnings("UnstableApiUsage")
|
||||
protected long fillIncomplete(CharSequence line, final List<IncrementalToken> tokens) {
|
||||
lexer.setInputStream(createStream(line));
|
||||
final var queue = createEvictingQueueForTokens();
|
||||
final var end = queue.getSecond();
|
||||
final var allTokens =
|
||||
lexer.getAllTokens().stream().map(IncrementalToken::new).collect(Collectors.toList());
|
||||
var completed = false;
|
||||
var index = 0;
|
||||
for (index = 0; index < allTokens.size(); index++) {
|
||||
final IncrementalToken token = allTokens.get(index);
|
||||
if (token.getType() == Token.EOF) {
|
||||
break;
|
||||
}
|
||||
|
||||
end.add(token);
|
||||
if (end.remainingCapacity() == 0 && isIncompleteTokenEnd(end)) {
|
||||
completed = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
final var first = allTokens.get(0);
|
||||
final int offset = allTokens.get(completed ? index : index - 1).getStartIndex();
|
||||
first.startIndex = 0;
|
||||
handleIncompleteToken(first);
|
||||
tokens.add(first);
|
||||
if (completed) {
|
||||
return IntPair.pack(NORMAL, offset);
|
||||
} else {
|
||||
return IntPair.pack(INCOMPLETE, offset);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Span> generateSpansForLine(
|
||||
final AsyncLineTokenizeResult<LineState, IncrementalToken> tokens) {
|
||||
var spans = generateSpans(tokens);
|
||||
spans.determine(tokens.line);
|
||||
|
||||
List<Span> result;
|
||||
try {
|
||||
result = new ArrayList<>(spans.build().read().getSpansOnLine(tokens.line));
|
||||
} catch (Throwable err) {
|
||||
result = new ArrayList<>();
|
||||
}
|
||||
|
||||
if (result.isEmpty()) {
|
||||
result.add(Span.obtain(0, TextStyle.makeStyle(SchemeAndroidIDE.TEXT_NORMAL)));
|
||||
}
|
||||
|
||||
// TODO Mark diagnostics in spans.
|
||||
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
/*
|
||||
* 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.incremental
|
||||
|
||||
import org.antlr.v4.runtime.CharStream
|
||||
import org.antlr.v4.runtime.Token
|
||||
import org.antlr.v4.runtime.TokenSource
|
||||
|
||||
/**
|
||||
* Token used for incremental lexing tasks. Allows us to store other information to tokens.
|
||||
*
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
class IncrementalToken(val token: Token) : Token {
|
||||
|
||||
@JvmField var type = token.type
|
||||
@JvmField var startIndex = token.startIndex
|
||||
@JvmField var incomplete = false
|
||||
|
||||
override fun getText(): String = token.text
|
||||
override fun getType() = type
|
||||
override fun getLine() = token.line
|
||||
override fun getCharPositionInLine() = token.charPositionInLine
|
||||
override fun getChannel() = token.channel
|
||||
override fun getTokenIndex() = token.tokenIndex
|
||||
override fun getStartIndex() = startIndex
|
||||
override fun getStopIndex() = token.stopIndex
|
||||
override fun getTokenSource(): TokenSource = token.tokenSource
|
||||
override fun getInputStream(): CharStream = token.inputStream
|
||||
override fun equals(other: Any?) = token == other
|
||||
override fun hashCode() = token.hashCode()
|
||||
override fun toString() = token.toString()
|
||||
}
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* 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.incremental
|
||||
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
|
||||
/**
|
||||
* Tokenization state of a line.
|
||||
*
|
||||
* @author Akash Yadav
|
||||
*/
|
||||
class LineState {
|
||||
|
||||
companion object {
|
||||
const val NORMAL = 0
|
||||
const val INCOMPLETE = 1
|
||||
}
|
||||
|
||||
@JvmField var state = NORMAL
|
||||
@JvmField var hasBraces = false
|
||||
@JvmField var diagnostics: DiagnosticsState? = null
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (this === other) return true
|
||||
if (javaClass != other?.javaClass) return false
|
||||
|
||||
other as LineState
|
||||
|
||||
if (state != other.state) return false
|
||||
if (hasBraces != other.hasBraces) return false
|
||||
if (diagnostics != other.diagnostics) return false
|
||||
|
||||
return true
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
var result = state
|
||||
result = 31 * result + hasBraces.hashCode()
|
||||
result = 31 * result + (diagnostics?.hashCode() ?: 0)
|
||||
return result
|
||||
}
|
||||
|
||||
override fun toString(): String {
|
||||
return "LineState(state=$state, hasBraces=$hasBraces, diagnostics=$diagnostics)"
|
||||
}
|
||||
}
|
||||
|
||||
data class DiagnosticsState(
|
||||
val continueDiagnostic: Boolean = false,
|
||||
val diagnostic: DiagnosticItem? = null
|
||||
)
|
||||
+239
@@ -0,0 +1,239 @@
|
||||
/*
|
||||
* 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.java
|
||||
|
||||
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.java.JavaLexer
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.ANNOTATION
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.COMMENT
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.FIXME_COMMENT
|
||||
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.TODO_COMMENT
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.TYPE_NAME
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.forComment
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.forKeyword
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.forString
|
||||
import com.itsaky.androidide.syntax.colorschemes.SchemeAndroidIDE.withoutCompletion
|
||||
import com.itsaky.androidide.utils.ILogger
|
||||
import com.itsaky.lsp.models.DiagnosticItem
|
||||
import com.itsaky.lsp.models.DiagnosticSeverity.WARNING
|
||||
import com.itsaky.lsp.models.Position
|
||||
import com.itsaky.lsp.models.Range
|
||||
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.TextStyle.makeStyle
|
||||
import io.github.rosemoe.sora.text.Content
|
||||
import org.antlr.v4.runtime.CharStreams
|
||||
|
||||
/** @author Akash Yadav */
|
||||
class JavaIncrementalAnalyzeManager :
|
||||
BaseIncrementalAnalyzeManager(JavaLexer(CharStreams.fromString(""))) {
|
||||
|
||||
private val log = ILogger.newInstance(javaClass.simpleName)
|
||||
|
||||
override fun computeBlocks(text: Content, delegate: CodeBlockAnalyzeDelegate): List<CodeBlock> {
|
||||
return emptyList()
|
||||
}
|
||||
|
||||
override fun generateSpans(
|
||||
tokens: AsyncLineTokenizeResult<LineState, IncrementalToken>,
|
||||
): MappedSpans.Builder {
|
||||
val line = tokens.line
|
||||
val spans = MappedSpans.Builder(1)
|
||||
var previous = JavaLexer.WS
|
||||
var first = true
|
||||
for (token in tokens.tokens) {
|
||||
val type = token.type
|
||||
val offset = token.startIndex
|
||||
val tokenLength = token.text.length
|
||||
when (type) {
|
||||
JavaLexer.WS -> {
|
||||
if (first) {
|
||||
spans.addIfNeeded(line, offset, makeStyle(TEXT_NORMAL))
|
||||
first = false
|
||||
}
|
||||
}
|
||||
JavaLexer.ABSTRACT,
|
||||
JavaLexer.ASSERT,
|
||||
JavaLexer.BREAK,
|
||||
JavaLexer.CASE,
|
||||
JavaLexer.CATCH,
|
||||
JavaLexer.CLASS,
|
||||
JavaLexer.CONST,
|
||||
JavaLexer.CONTINUE,
|
||||
JavaLexer.DEFAULT,
|
||||
JavaLexer.DO,
|
||||
JavaLexer.ELSE,
|
||||
JavaLexer.EXTENDS,
|
||||
JavaLexer.FINAL,
|
||||
JavaLexer.FINALLY,
|
||||
JavaLexer.FOR,
|
||||
JavaLexer.IF,
|
||||
JavaLexer.GOTO,
|
||||
JavaLexer.IMPLEMENTS,
|
||||
JavaLexer.IMPORT,
|
||||
JavaLexer.INSTANCEOF,
|
||||
JavaLexer.INTERFACE,
|
||||
JavaLexer.NATIVE,
|
||||
JavaLexer.NEW,
|
||||
JavaLexer.PACKAGE,
|
||||
JavaLexer.PRIVATE,
|
||||
JavaLexer.PROTECTED,
|
||||
JavaLexer.PUBLIC,
|
||||
JavaLexer.RETURN,
|
||||
JavaLexer.STATIC,
|
||||
JavaLexer.STRICTFP,
|
||||
JavaLexer.SUPER,
|
||||
JavaLexer.SWITCH,
|
||||
JavaLexer.SYNCHRONIZED,
|
||||
JavaLexer.THIS,
|
||||
JavaLexer.THROW,
|
||||
JavaLexer.THROWS,
|
||||
JavaLexer.TRANSIENT,
|
||||
JavaLexer.TRY,
|
||||
JavaLexer.VOID,
|
||||
JavaLexer.VOLATILE,
|
||||
JavaLexer.WHILE,
|
||||
JavaLexer.VAR, -> spans.addIfNeeded(line, offset, forKeyword())
|
||||
JavaLexer.DECIMAL_LITERAL,
|
||||
JavaLexer.HEX_LITERAL,
|
||||
JavaLexer.OCT_LITERAL,
|
||||
JavaLexer.BINARY_LITERAL,
|
||||
JavaLexer.FLOAT_LITERAL,
|
||||
JavaLexer.HEX_FLOAT_LITERAL,
|
||||
JavaLexer.BOOL_LITERAL,
|
||||
JavaLexer.CHAR_LITERAL,
|
||||
JavaLexer.NULL_LITERAL, -> spans.addIfNeeded(line, offset, makeStyle(LITERAL))
|
||||
JavaLexer.STRING_LITERAL -> spans.addIfNeeded(line, offset, forString())
|
||||
JavaLexer.LPAREN,
|
||||
JavaLexer.RPAREN,
|
||||
JavaLexer.LBRACK,
|
||||
JavaLexer.RBRACK,
|
||||
JavaLexer.SEMI,
|
||||
JavaLexer.COMMA,
|
||||
JavaLexer.ASSIGN,
|
||||
JavaLexer.GT,
|
||||
JavaLexer.LT,
|
||||
JavaLexer.BANG,
|
||||
JavaLexer.TILDE,
|
||||
JavaLexer.QUESTION,
|
||||
JavaLexer.COLON,
|
||||
JavaLexer.EQUAL,
|
||||
JavaLexer.GE,
|
||||
JavaLexer.LE,
|
||||
JavaLexer.NOTEQUAL,
|
||||
JavaLexer.AND,
|
||||
JavaLexer.OR,
|
||||
JavaLexer.INC,
|
||||
JavaLexer.DEC,
|
||||
JavaLexer.ADD,
|
||||
JavaLexer.SUB,
|
||||
JavaLexer.MUL,
|
||||
JavaLexer.DIV,
|
||||
JavaLexer.BITAND,
|
||||
JavaLexer.BITOR,
|
||||
JavaLexer.CARET,
|
||||
JavaLexer.MOD,
|
||||
JavaLexer.ADD_ASSIGN,
|
||||
JavaLexer.SUB_ASSIGN,
|
||||
JavaLexer.MUL_ASSIGN,
|
||||
JavaLexer.DIV_ASSIGN,
|
||||
JavaLexer.AND_ASSIGN,
|
||||
JavaLexer.OR_ASSIGN,
|
||||
JavaLexer.XOR_ASSIGN,
|
||||
JavaLexer.MOD_ASSIGN,
|
||||
JavaLexer.LSHIFT_ASSIGN,
|
||||
JavaLexer.RSHIFT_ASSIGN,
|
||||
JavaLexer.URSHIFT_ASSIGN,
|
||||
JavaLexer.ARROW,
|
||||
JavaLexer.COLONCOLON,
|
||||
JavaLexer.ELLIPSIS,
|
||||
JavaLexer.LBRACE,
|
||||
JavaLexer.RBRACE,
|
||||
JavaLexer.DOT, -> spans.addIfNeeded(line, offset, makeStyle(OPERATOR))
|
||||
JavaLexer.BOOLEAN,
|
||||
JavaLexer.BYTE,
|
||||
JavaLexer.CHAR,
|
||||
JavaLexer.DOUBLE,
|
||||
JavaLexer.ENUM,
|
||||
JavaLexer.FLOAT,
|
||||
JavaLexer.INT,
|
||||
JavaLexer.LONG,
|
||||
JavaLexer.SHORT, -> spans.addIfNeeded(line, offset, makeStyle(TYPE_NAME))
|
||||
JavaLexer.BLOCK_COMMENT -> spans.addIfNeeded(line, offset, forComment())
|
||||
JavaLexer.LINE_COMMENT -> {
|
||||
var commentType = COMMENT
|
||||
|
||||
// highlight special line comments
|
||||
var commentText = token.text
|
||||
if (commentText.length > 2) {
|
||||
commentText = commentText.substring(2)
|
||||
commentText = commentText.trim { it <= ' ' }
|
||||
var mark = true
|
||||
if ("todo".equals(commentText.substring(0, 4), ignoreCase = true)) {
|
||||
commentType = TODO_COMMENT
|
||||
} else if ("fixme".equals(commentText.substring(0, 5), ignoreCase = true)) {
|
||||
commentType = FIXME_COMMENT
|
||||
} else {
|
||||
mark = false
|
||||
}
|
||||
if (mark) {
|
||||
if (diagnostics == null) {
|
||||
diagnostics = ArrayList<DiagnosticItem>()
|
||||
}
|
||||
val diagnostic = DiagnosticItem()
|
||||
diagnostic.severity = WARNING
|
||||
diagnostic.message = commentText
|
||||
diagnostic.code = "special.comment"
|
||||
diagnostic.range = Range(Position(0, offset), Position(0, offset + tokenLength))
|
||||
diagnostic.source = commentText
|
||||
ideDiagnostics.add(diagnostic)
|
||||
}
|
||||
}
|
||||
spans.addIfNeeded(line, offset, withoutCompletion(commentType))
|
||||
}
|
||||
JavaLexer.AT -> spans.addIfNeeded(line, offset, makeStyle(ANNOTATION))
|
||||
JavaLexer.IDENTIFIER -> {
|
||||
var colorId = TEXT_NORMAL
|
||||
if (previous == JavaLexer.AT) {
|
||||
colorId = ANNOTATION
|
||||
}
|
||||
spans.addIfNeeded(line, offset, makeStyle(colorId))
|
||||
}
|
||||
else -> spans.addIfNeeded(line, offset, makeStyle(TEXT_NORMAL))
|
||||
}
|
||||
previous = type
|
||||
}
|
||||
|
||||
return spans;
|
||||
}
|
||||
|
||||
override fun getMultilineTokenStartEndTypes(): Array<IntArray> {
|
||||
val start = intArrayOf(JavaLexer.DIV, JavaLexer.MUL)
|
||||
val end = intArrayOf(JavaLexer.MUL, JavaLexer.DIV)
|
||||
return arrayOf(start, end)
|
||||
}
|
||||
|
||||
override fun handleIncompleteToken(token: IncrementalToken) {
|
||||
token.type = JavaLexer.BLOCK_COMMENT
|
||||
}
|
||||
}
|
||||
@@ -54,12 +54,12 @@ public class JavaLanguage extends IDELanguage {
|
||||
|
||||
private static final ILogger LOG = ILogger.newInstance("JavaLanguage");
|
||||
private final NewlineHandler[] newlineHandlers;
|
||||
private JavaAnalyzer analyzer;
|
||||
private JavaIncrementalAnalyzeManager analyzer;
|
||||
private CommonCompletionProvider completer;
|
||||
|
||||
public JavaLanguage() {
|
||||
final var server = getLanguageServer();
|
||||
this.analyzer = new JavaAnalyzer();
|
||||
this.analyzer = new JavaIncrementalAnalyzeManager();
|
||||
this.completer = new CommonCompletionProvider(server);
|
||||
|
||||
this.newlineHandlers = new NewlineHandler[1];
|
||||
|
||||
+137
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
* 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.incremental
|
||||
|
||||
import com.google.common.truth.Truth.assertThat
|
||||
import com.itsaky.androidide.language.java.JavaIncrementalAnalyzeManager
|
||||
import com.itsaky.androidide.lexers.java.JavaLexer
|
||||
import io.github.rosemoe.sora.lang.analysis.IncrementalAnalyzeManager.LineTokenizeResult
|
||||
import org.junit.Test
|
||||
import org.junit.runner.RunWith
|
||||
import org.robolectric.RobolectricTestRunner
|
||||
import org.robolectric.annotation.Config
|
||||
|
||||
@RunWith(RobolectricTestRunner::class)
|
||||
@Config(manifest = Config.NONE)
|
||||
internal class BaseIncrementalAnalyzeManagerTest {
|
||||
|
||||
@Test
|
||||
fun testSimpleTokenization() {
|
||||
val analyzer = JavaIncrementalAnalyzeManager()
|
||||
val result =
|
||||
analyzer.tokenizeLine(
|
||||
"public static final String THIS_IS_A_STRING = \"This is a string...!\";",
|
||||
analyzer.initialState
|
||||
)
|
||||
println("New state: ${result.state}")
|
||||
ensureTokenSequence(
|
||||
result,
|
||||
listOf(
|
||||
JavaLexer.PUBLIC,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.STATIC,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.FINAL,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.IDENTIFIER,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.IDENTIFIER,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.ASSIGN,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.STRING_LITERAL,
|
||||
JavaLexer.SEMI
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testCompleteCommentTokenization() {
|
||||
val analyzer = JavaIncrementalAnalyzeManager()
|
||||
val result =
|
||||
analyzer.tokenizeLine("/*This is a */complete multiline comment", analyzer.initialState)
|
||||
assertThat(result.state.state).isEqualTo(LineState.NORMAL)
|
||||
ensureTokenSequence(
|
||||
result,
|
||||
listOf(
|
||||
JavaLexer.BLOCK_COMMENT,
|
||||
JavaLexer.IDENTIFIER,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.IDENTIFIER,
|
||||
JavaLexer.WS,
|
||||
JavaLexer.IDENTIFIER
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testIncompleteCommentTokenization() {
|
||||
val analyzer = JavaIncrementalAnalyzeManager()
|
||||
var result =
|
||||
analyzer.tokenizeLine("/*This is an incomplete multiline comment", analyzer.initialState)
|
||||
println(result.state)
|
||||
assertThat(result.state.state).isEqualTo(LineState.INCOMPLETE)
|
||||
|
||||
result =
|
||||
analyzer.tokenizeLine("/*This is an incomplete*//* multiline comment", analyzer.initialState)
|
||||
println(result.state)
|
||||
assertThat(result.state.state).isEqualTo(LineState.INCOMPLETE)
|
||||
|
||||
result =
|
||||
analyzer.tokenizeLine("This is an incomplete multiline comment/*", analyzer.initialState)
|
||||
println(result.state)
|
||||
assertThat(result.state.state).isEqualTo(LineState.INCOMPLETE)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun testMultilineCommentTokenization() {
|
||||
val analyzer = JavaIncrementalAnalyzeManager()
|
||||
|
||||
// Test a simple multiline comment
|
||||
run {
|
||||
var result = analyzer.tokenizeLine("/** This is an", analyzer.initialState)
|
||||
assertThat(result.state.state).isEqualTo(LineState.INCOMPLETE)
|
||||
|
||||
result = analyzer.tokenizeLine(" incomplete comment*/", result.state)
|
||||
assertThat(result.state.state).isEqualTo(LineState.NORMAL)
|
||||
}
|
||||
|
||||
// Test a multiline comment which is directly followed by tokens of other types.
|
||||
run {
|
||||
var result = analyzer.tokenizeLine("/** This is an", analyzer.initialState)
|
||||
assertThat(result.state.state).isEqualTo(LineState.INCOMPLETE)
|
||||
assertThat(result.tokens.last()).isNotNull()
|
||||
assertThat(result.tokens.last().type).isEqualTo(JavaLexer.IDENTIFIER)
|
||||
|
||||
result = analyzer.tokenizeLine(" incomplete comment*/ public static void", result.state)
|
||||
assertThat(result.state.state).isEqualTo(LineState.NORMAL)
|
||||
assertThat(result.tokens.last().type).isEqualTo(JavaLexer.VOID)
|
||||
assertThat(result.tokens[result.tokens.lastIndex - 1].type).isEqualTo(JavaLexer.WS)
|
||||
assertThat(result.tokens[result.tokens.lastIndex - 2].type).isEqualTo(JavaLexer.STATIC)
|
||||
}
|
||||
}
|
||||
|
||||
private fun ensureTokenSequence(
|
||||
result: LineTokenizeResult<LineState, IncrementalToken>,
|
||||
types: List<Int>
|
||||
) {
|
||||
for (index in types.indices) {
|
||||
assertThat(result.tokens[index].type).isEqualTo(types[index])
|
||||
}
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -12,7 +12,7 @@ ext {
|
||||
bll: 'com.github.Rosemoe:BlockLinkedList:1.0.0',
|
||||
xml2json: 'com.github.smart-fun:XmlToJson:1.5.1',
|
||||
jsoup: 'org.jsoup:jsoup:1.14.2',
|
||||
antlr4: 'org.antlr:antlr4-runtime:4.9.2',
|
||||
antlr4: 'org.antlr:antlr4-runtime:4.9.3',
|
||||
javaparser: 'com.github.javaparser:javaparser-symbol-solver-core:3.24.2',
|
||||
jsonrpc: 'org.eclipse.lsp4j:org.eclipse.lsp4j.jsonrpc:0.12.0',
|
||||
lang3:'org.apache.commons:commons-lang3:3.12.0',
|
||||
|
||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,763 @@
|
||||
// Generated from /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/java/JavaLexer.g4 by ANTLR 4.10.1
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
import org.antlr.v4.runtime.Lexer;
|
||||
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 JavaLexer extends Lexer {
|
||||
static { RuntimeMetaData.checkVersion("4.10.1", RuntimeMetaData.VERSION); }
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache =
|
||||
new PredictionContextCache();
|
||||
public static final int
|
||||
ABSTRACT=1, ASSERT=2, BOOLEAN=3, BREAK=4, BYTE=5, CASE=6, CATCH=7, CHAR=8,
|
||||
CLASS=9, CONST=10, CONTINUE=11, DEFAULT=12, DO=13, DOUBLE=14, ELSE=15,
|
||||
ENUM=16, EXTENDS=17, FINAL=18, FINALLY=19, FLOAT=20, FOR=21, IF=22, GOTO=23,
|
||||
IMPLEMENTS=24, IMPORT=25, INSTANCEOF=26, INT=27, INTERFACE=28, LONG=29,
|
||||
NATIVE=30, NEW=31, PACKAGE=32, PRIVATE=33, PROTECTED=34, PUBLIC=35, RETURN=36,
|
||||
SHORT=37, STATIC=38, STRICTFP=39, SUPER=40, SWITCH=41, SYNCHRONIZED=42,
|
||||
THIS=43, THROW=44, THROWS=45, TRANSIENT=46, TRY=47, VAR=48, VOID=49, VOLATILE=50,
|
||||
WHILE=51, DECIMAL_LITERAL=52, HEX_LITERAL=53, OCT_LITERAL=54, BINARY_LITERAL=55,
|
||||
FLOAT_LITERAL=56, HEX_FLOAT_LITERAL=57, BOOL_LITERAL=58, CHAR_LITERAL=59,
|
||||
STRING_LITERAL=60, NULL_LITERAL=61, LPAREN=62, RPAREN=63, LBRACE=64, RBRACE=65,
|
||||
LBRACK=66, RBRACK=67, SEMI=68, COMMA=69, DOT=70, ASSIGN=71, GT=72, LT=73,
|
||||
BANG=74, TILDE=75, QUESTION=76, COLON=77, EQUAL=78, LE=79, GE=80, NOTEQUAL=81,
|
||||
AND=82, OR=83, INC=84, DEC=85, ADD=86, SUB=87, MUL=88, DIV=89, BITAND=90,
|
||||
BITOR=91, CARET=92, MOD=93, ADD_ASSIGN=94, SUB_ASSIGN=95, MUL_ASSIGN=96,
|
||||
DIV_ASSIGN=97, AND_ASSIGN=98, OR_ASSIGN=99, XOR_ASSIGN=100, MOD_ASSIGN=101,
|
||||
LSHIFT_ASSIGN=102, RSHIFT_ASSIGN=103, URSHIFT_ASSIGN=104, ARROW=105, COLONCOLON=106,
|
||||
AT=107, ELLIPSIS=108, WS=109, BLOCK_COMMENT=110, LINE_COMMENT=111, IDENTIFIER=112;
|
||||
public static String[] channelNames = {
|
||||
"DEFAULT_TOKEN_CHANNEL", "HIDDEN"
|
||||
};
|
||||
|
||||
public static String[] modeNames = {
|
||||
"DEFAULT_MODE"
|
||||
};
|
||||
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH", "CHAR",
|
||||
"CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE", "ENUM",
|
||||
"EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO", "IMPLEMENTS",
|
||||
"IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE", "NEW",
|
||||
"PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT", "STATIC",
|
||||
"STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW", "THROWS",
|
||||
"TRANSIENT", "TRY", "VAR", "VOID", "VOLATILE", "WHILE", "DECIMAL_LITERAL",
|
||||
"HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", "LPAREN",
|
||||
"RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT",
|
||||
"ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", "EQUAL",
|
||||
"LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL",
|
||||
"DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN",
|
||||
"MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN",
|
||||
"MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "ARROW",
|
||||
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "LINE_COMMENT",
|
||||
"IDENTIFIER", "ExponentPart", "EscapeSequence", "HexDigits", "HexDigit",
|
||||
"Digits", "LetterOrDigit", "Letter"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null, "'abstract'", "'assert'", "'boolean'", "'break'", "'byte'", "'case'",
|
||||
"'catch'", "'char'", "'class'", "'const'", "'continue'", "'default'",
|
||||
"'do'", "'double'", "'else'", "'enum'", "'extends'", "'final'", "'finally'",
|
||||
"'float'", "'for'", "'if'", "'goto'", "'implements'", "'import'", "'instanceof'",
|
||||
"'int'", "'interface'", "'long'", "'native'", "'new'", "'package'", "'private'",
|
||||
"'protected'", "'public'", "'return'", "'short'", "'static'", "'strictfp'",
|
||||
"'super'", "'switch'", "'synchronized'", "'this'", "'throw'", "'throws'",
|
||||
"'transient'", "'try'", "'var'", "'void'", "'volatile'", "'while'", 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, "ABSTRACT", "ASSERT", "BOOLEAN", "BREAK", "BYTE", "CASE", "CATCH",
|
||||
"CHAR", "CLASS", "CONST", "CONTINUE", "DEFAULT", "DO", "DOUBLE", "ELSE",
|
||||
"ENUM", "EXTENDS", "FINAL", "FINALLY", "FLOAT", "FOR", "IF", "GOTO",
|
||||
"IMPLEMENTS", "IMPORT", "INSTANCEOF", "INT", "INTERFACE", "LONG", "NATIVE",
|
||||
"NEW", "PACKAGE", "PRIVATE", "PROTECTED", "PUBLIC", "RETURN", "SHORT",
|
||||
"STATIC", "STRICTFP", "SUPER", "SWITCH", "SYNCHRONIZED", "THIS", "THROW",
|
||||
"THROWS", "TRANSIENT", "TRY", "VAR", "VOID", "VOLATILE", "WHILE", "DECIMAL_LITERAL",
|
||||
"HEX_LITERAL", "OCT_LITERAL", "BINARY_LITERAL", "FLOAT_LITERAL", "HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL", "CHAR_LITERAL", "STRING_LITERAL", "NULL_LITERAL", "LPAREN",
|
||||
"RPAREN", "LBRACE", "RBRACE", "LBRACK", "RBRACK", "SEMI", "COMMA", "DOT",
|
||||
"ASSIGN", "GT", "LT", "BANG", "TILDE", "QUESTION", "COLON", "EQUAL",
|
||||
"LE", "GE", "NOTEQUAL", "AND", "OR", "INC", "DEC", "ADD", "SUB", "MUL",
|
||||
"DIV", "BITAND", "BITOR", "CARET", "MOD", "ADD_ASSIGN", "SUB_ASSIGN",
|
||||
"MUL_ASSIGN", "DIV_ASSIGN", "AND_ASSIGN", "OR_ASSIGN", "XOR_ASSIGN",
|
||||
"MOD_ASSIGN", "LSHIFT_ASSIGN", "RSHIFT_ASSIGN", "URSHIFT_ASSIGN", "ARROW",
|
||||
"COLONCOLON", "AT", "ELLIPSIS", "WS", "BLOCK_COMMENT", "LINE_COMMENT",
|
||||
"IDENTIFIER"
|
||||
};
|
||||
}
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
|
||||
public JavaLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() { return "JavaLexer.g4"; }
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() { return ruleNames; }
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() { return _serializedATN; }
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() { return channelNames; }
|
||||
|
||||
@Override
|
||||
public String[] getModeNames() { return modeNames; }
|
||||
|
||||
@Override
|
||||
public ATN getATN() { return _ATN; }
|
||||
|
||||
public static final String _serializedATN =
|
||||
"\u0004\u0000p\u03b7\u0006\uffff\uffff\u0002\u0000\u0007\u0000\u0002\u0001"+
|
||||
"\u0007\u0001\u0002\u0002\u0007\u0002\u0002\u0003\u0007\u0003\u0002\u0004"+
|
||||
"\u0007\u0004\u0002\u0005\u0007\u0005\u0002\u0006\u0007\u0006\u0002\u0007"+
|
||||
"\u0007\u0007\u0002\b\u0007\b\u0002\t\u0007\t\u0002\n\u0007\n\u0002\u000b"+
|
||||
"\u0007\u000b\u0002\f\u0007\f\u0002\r\u0007\r\u0002\u000e\u0007\u000e\u0002"+
|
||||
"\u000f\u0007\u000f\u0002\u0010\u0007\u0010\u0002\u0011\u0007\u0011\u0002"+
|
||||
"\u0012\u0007\u0012\u0002\u0013\u0007\u0013\u0002\u0014\u0007\u0014\u0002"+
|
||||
"\u0015\u0007\u0015\u0002\u0016\u0007\u0016\u0002\u0017\u0007\u0017\u0002"+
|
||||
"\u0018\u0007\u0018\u0002\u0019\u0007\u0019\u0002\u001a\u0007\u001a\u0002"+
|
||||
"\u001b\u0007\u001b\u0002\u001c\u0007\u001c\u0002\u001d\u0007\u001d\u0002"+
|
||||
"\u001e\u0007\u001e\u0002\u001f\u0007\u001f\u0002 \u0007 \u0002!\u0007"+
|
||||
"!\u0002\"\u0007\"\u0002#\u0007#\u0002$\u0007$\u0002%\u0007%\u0002&\u0007"+
|
||||
"&\u0002\'\u0007\'\u0002(\u0007(\u0002)\u0007)\u0002*\u0007*\u0002+\u0007"+
|
||||
"+\u0002,\u0007,\u0002-\u0007-\u0002.\u0007.\u0002/\u0007/\u00020\u0007"+
|
||||
"0\u00021\u00071\u00022\u00072\u00023\u00073\u00024\u00074\u00025\u0007"+
|
||||
"5\u00026\u00076\u00027\u00077\u00028\u00078\u00029\u00079\u0002:\u0007"+
|
||||
":\u0002;\u0007;\u0002<\u0007<\u0002=\u0007=\u0002>\u0007>\u0002?\u0007"+
|
||||
"?\u0002@\u0007@\u0002A\u0007A\u0002B\u0007B\u0002C\u0007C\u0002D\u0007"+
|
||||
"D\u0002E\u0007E\u0002F\u0007F\u0002G\u0007G\u0002H\u0007H\u0002I\u0007"+
|
||||
"I\u0002J\u0007J\u0002K\u0007K\u0002L\u0007L\u0002M\u0007M\u0002N\u0007"+
|
||||
"N\u0002O\u0007O\u0002P\u0007P\u0002Q\u0007Q\u0002R\u0007R\u0002S\u0007"+
|
||||
"S\u0002T\u0007T\u0002U\u0007U\u0002V\u0007V\u0002W\u0007W\u0002X\u0007"+
|
||||
"X\u0002Y\u0007Y\u0002Z\u0007Z\u0002[\u0007[\u0002\\\u0007\\\u0002]\u0007"+
|
||||
"]\u0002^\u0007^\u0002_\u0007_\u0002`\u0007`\u0002a\u0007a\u0002b\u0007"+
|
||||
"b\u0002c\u0007c\u0002d\u0007d\u0002e\u0007e\u0002f\u0007f\u0002g\u0007"+
|
||||
"g\u0002h\u0007h\u0002i\u0007i\u0002j\u0007j\u0002k\u0007k\u0002l\u0007"+
|
||||
"l\u0002m\u0007m\u0002n\u0007n\u0002o\u0007o\u0002p\u0007p\u0002q\u0007"+
|
||||
"q\u0002r\u0007r\u0002s\u0007s\u0002t\u0007t\u0002u\u0007u\u0002v\u0007"+
|
||||
"v\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0000"+
|
||||
"\u0001\u0000\u0001\u0000\u0001\u0000\u0001\u0001\u0001\u0001\u0001\u0001"+
|
||||
"\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0001\u0002\u0001\u0002"+
|
||||
"\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002\u0001\u0002"+
|
||||
"\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003\u0001\u0003"+
|
||||
"\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0004\u0001\u0005"+
|
||||
"\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0005\u0001\u0006\u0001\u0006"+
|
||||
"\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0006\u0001\u0007\u0001\u0007"+
|
||||
"\u0001\u0007\u0001\u0007\u0001\u0007\u0001\b\u0001\b\u0001\b\u0001\b\u0001"+
|
||||
"\b\u0001\b\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\t\u0001\n\u0001"+
|
||||
"\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\n\u0001\u000b"+
|
||||
"\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b\u0001\u000b"+
|
||||
"\u0001\u000b\u0001\f\u0001\f\u0001\f\u0001\r\u0001\r\u0001\r\u0001\r\u0001"+
|
||||
"\r\u0001\r\u0001\r\u0001\u000e\u0001\u000e\u0001\u000e\u0001\u000e\u0001"+
|
||||
"\u000e\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001\u000f\u0001"+
|
||||
"\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001\u0010\u0001"+
|
||||
"\u0010\u0001\u0010\u0001\u0011\u0001\u0011\u0001\u0011\u0001\u0011\u0001"+
|
||||
"\u0011\u0001\u0011\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001"+
|
||||
"\u0012\u0001\u0012\u0001\u0012\u0001\u0012\u0001\u0013\u0001\u0013\u0001"+
|
||||
"\u0013\u0001\u0013\u0001\u0013\u0001\u0013\u0001\u0014\u0001\u0014\u0001"+
|
||||
"\u0014\u0001\u0014\u0001\u0015\u0001\u0015\u0001\u0015\u0001\u0016\u0001"+
|
||||
"\u0016\u0001\u0016\u0001\u0016\u0001\u0016\u0001\u0017\u0001\u0017\u0001"+
|
||||
"\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001\u0017\u0001"+
|
||||
"\u0017\u0001\u0017\u0001\u0017\u0001\u0018\u0001\u0018\u0001\u0018\u0001"+
|
||||
"\u0018\u0001\u0018\u0001\u0018\u0001\u0018\u0001\u0019\u0001\u0019\u0001"+
|
||||
"\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001\u0019\u0001"+
|
||||
"\u0019\u0001\u0019\u0001\u0019\u0001\u001a\u0001\u001a\u0001\u001a\u0001"+
|
||||
"\u001a\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001"+
|
||||
"\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001b\u0001\u001c\u0001"+
|
||||
"\u001c\u0001\u001c\u0001\u001c\u0001\u001c\u0001\u001d\u0001\u001d\u0001"+
|
||||
"\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001d\u0001\u001e\u0001"+
|
||||
"\u001e\u0001\u001e\u0001\u001e\u0001\u001f\u0001\u001f\u0001\u001f\u0001"+
|
||||
"\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001\u001f\u0001 \u0001 \u0001"+
|
||||
" \u0001 \u0001 \u0001 \u0001 \u0001 \u0001!\u0001!\u0001!\u0001!\u0001"+
|
||||
"!\u0001!\u0001!\u0001!\u0001!\u0001!\u0001\"\u0001\"\u0001\"\u0001\"\u0001"+
|
||||
"\"\u0001\"\u0001\"\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001#\u0001"+
|
||||
"$\u0001$\u0001$\u0001$\u0001$\u0001$\u0001%\u0001%\u0001%\u0001%\u0001"+
|
||||
"%\u0001%\u0001%\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001&\u0001"+
|
||||
"&\u0001&\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001\'\u0001(\u0001"+
|
||||
"(\u0001(\u0001(\u0001(\u0001(\u0001(\u0001)\u0001)\u0001)\u0001)\u0001"+
|
||||
")\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001)\u0001*\u0001"+
|
||||
"*\u0001*\u0001*\u0001*\u0001+\u0001+\u0001+\u0001+\u0001+\u0001+\u0001"+
|
||||
",\u0001,\u0001,\u0001,\u0001,\u0001,\u0001,\u0001-\u0001-\u0001-\u0001"+
|
||||
"-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001-\u0001.\u0001.\u0001.\u0001"+
|
||||
".\u0001/\u0001/\u0001/\u0001/\u00010\u00010\u00010\u00010\u00010\u0001"+
|
||||
"1\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00011\u00012\u0001"+
|
||||
"2\u00012\u00012\u00012\u00012\u00013\u00013\u00013\u00033\u024a\b3\u0001"+
|
||||
"3\u00043\u024d\b3\u000b3\f3\u024e\u00013\u00033\u0252\b3\u00033\u0254"+
|
||||
"\b3\u00013\u00033\u0257\b3\u00014\u00014\u00014\u00014\u00054\u025d\b"+
|
||||
"4\n4\f4\u0260\t4\u00014\u00034\u0263\b4\u00014\u00034\u0266\b4\u00015"+
|
||||
"\u00015\u00055\u026a\b5\n5\f5\u026d\t5\u00015\u00015\u00055\u0271\b5\n"+
|
||||
"5\f5\u0274\t5\u00015\u00035\u0277\b5\u00015\u00035\u027a\b5\u00016\u0001"+
|
||||
"6\u00016\u00016\u00056\u0280\b6\n6\f6\u0283\t6\u00016\u00036\u0286\b6"+
|
||||
"\u00016\u00036\u0289\b6\u00017\u00017\u00017\u00037\u028e\b7\u00017\u0001"+
|
||||
"7\u00037\u0292\b7\u00017\u00037\u0295\b7\u00017\u00037\u0298\b7\u0001"+
|
||||
"7\u00017\u00017\u00037\u029d\b7\u00017\u00037\u02a0\b7\u00037\u02a2\b"+
|
||||
"7\u00018\u00018\u00018\u00018\u00038\u02a8\b8\u00018\u00038\u02ab\b8\u0001"+
|
||||
"8\u00018\u00038\u02af\b8\u00018\u00018\u00038\u02b3\b8\u00018\u00018\u0003"+
|
||||
"8\u02b7\b8\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u00019\u0001"+
|
||||
"9\u00039\u02c2\b9\u0001:\u0001:\u0001:\u0003:\u02c7\b:\u0001:\u0001:\u0001"+
|
||||
";\u0001;\u0001;\u0005;\u02ce\b;\n;\f;\u02d1\t;\u0001;\u0001;\u0001<\u0001"+
|
||||
"<\u0001<\u0001<\u0001<\u0001=\u0001=\u0001>\u0001>\u0001?\u0001?\u0001"+
|
||||
"@\u0001@\u0001A\u0001A\u0001B\u0001B\u0001C\u0001C\u0001D\u0001D\u0001"+
|
||||
"E\u0001E\u0001F\u0001F\u0001G\u0001G\u0001H\u0001H\u0001I\u0001I\u0001"+
|
||||
"J\u0001J\u0001K\u0001K\u0001L\u0001L\u0001M\u0001M\u0001M\u0001N\u0001"+
|
||||
"N\u0001N\u0001O\u0001O\u0001O\u0001P\u0001P\u0001P\u0001Q\u0001Q\u0001"+
|
||||
"Q\u0001R\u0001R\u0001R\u0001S\u0001S\u0001S\u0001T\u0001T\u0001T\u0001"+
|
||||
"U\u0001U\u0001V\u0001V\u0001W\u0001W\u0001X\u0001X\u0001Y\u0001Y\u0001"+
|
||||
"Z\u0001Z\u0001[\u0001[\u0001\\\u0001\\\u0001]\u0001]\u0001]\u0001^\u0001"+
|
||||
"^\u0001^\u0001_\u0001_\u0001_\u0001`\u0001`\u0001`\u0001a\u0001a\u0001"+
|
||||
"a\u0001b\u0001b\u0001b\u0001c\u0001c\u0001c\u0001d\u0001d\u0001d\u0001"+
|
||||
"e\u0001e\u0001e\u0001e\u0001f\u0001f\u0001f\u0001f\u0001g\u0001g\u0001"+
|
||||
"g\u0001g\u0001g\u0001h\u0001h\u0001h\u0001i\u0001i\u0001i\u0001j\u0001"+
|
||||
"j\u0001k\u0001k\u0001k\u0001k\u0001l\u0004l\u0354\bl\u000bl\fl\u0355\u0001"+
|
||||
"l\u0001l\u0001m\u0001m\u0001m\u0001m\u0005m\u035e\bm\nm\fm\u0361\tm\u0001"+
|
||||
"m\u0001m\u0001m\u0001m\u0001m\u0001n\u0001n\u0001n\u0001n\u0005n\u036c"+
|
||||
"\bn\nn\fn\u036f\tn\u0001n\u0001n\u0001o\u0001o\u0005o\u0375\bo\no\fo\u0378"+
|
||||
"\to\u0001p\u0001p\u0003p\u037c\bp\u0001p\u0001p\u0001q\u0001q\u0001q\u0001"+
|
||||
"q\u0003q\u0384\bq\u0001q\u0003q\u0387\bq\u0001q\u0001q\u0001q\u0004q\u038c"+
|
||||
"\bq\u000bq\fq\u038d\u0001q\u0001q\u0001q\u0001q\u0001q\u0003q\u0395\b"+
|
||||
"q\u0001r\u0001r\u0001r\u0005r\u039a\br\nr\fr\u039d\tr\u0001r\u0003r\u03a0"+
|
||||
"\br\u0001s\u0001s\u0001t\u0001t\u0005t\u03a6\bt\nt\ft\u03a9\tt\u0001t"+
|
||||
"\u0003t\u03ac\bt\u0001u\u0001u\u0003u\u03b0\bu\u0001v\u0001v\u0001v\u0001"+
|
||||
"v\u0003v\u03b6\bv\u0001\u035f\u0000w\u0001\u0001\u0003\u0002\u0005\u0003"+
|
||||
"\u0007\u0004\t\u0005\u000b\u0006\r\u0007\u000f\b\u0011\t\u0013\n\u0015"+
|
||||
"\u000b\u0017\f\u0019\r\u001b\u000e\u001d\u000f\u001f\u0010!\u0011#\u0012"+
|
||||
"%\u0013\'\u0014)\u0015+\u0016-\u0017/\u00181\u00193\u001a5\u001b7\u001c"+
|
||||
"9\u001d;\u001e=\u001f? A!C\"E#G$I%K&M\'O(Q)S*U+W,Y-[.]/_0a1c2e3g4i5k6"+
|
||||
"m7o8q9s:u;w<y={>}?\u007f@\u0081A\u0083B\u0085C\u0087D\u0089E\u008bF\u008d"+
|
||||
"G\u008fH\u0091I\u0093J\u0095K\u0097L\u0099M\u009bN\u009dO\u009fP\u00a1"+
|
||||
"Q\u00a3R\u00a5S\u00a7T\u00a9U\u00abV\u00adW\u00afX\u00b1Y\u00b3Z\u00b5"+
|
||||
"[\u00b7\\\u00b9]\u00bb^\u00bd_\u00bf`\u00c1a\u00c3b\u00c5c\u00c7d\u00c9"+
|
||||
"e\u00cbf\u00cdg\u00cfh\u00d1i\u00d3j\u00d5k\u00d7l\u00d9m\u00dbn\u00dd"+
|
||||
"o\u00dfp\u00e1\u0000\u00e3\u0000\u00e5\u0000\u00e7\u0000\u00e9\u0000\u00eb"+
|
||||
"\u0000\u00ed\u0000\u0001\u0000\u001a\u0001\u000019\u0002\u0000LLll\u0002"+
|
||||
"\u0000XXxx\u0003\u000009AFaf\u0004\u000009AF__af\u0001\u000007\u0002\u0000"+
|
||||
"07__\u0002\u0000BBbb\u0001\u000001\u0002\u000001__\u0004\u0000DDFFddf"+
|
||||
"f\u0002\u0000PPpp\u0002\u0000++--\u0004\u0000\n\n\r\r\'\'\\\\\u0004\u0000"+
|
||||
"\n\n\r\r\"\"\\\\\u0003\u0000\t\n\f\r \u0002\u0000\n\n\r\r\u0002\u0000"+
|
||||
"EEee\b\u0000\"\"\'\'\\\\bbffnnrrtt\u0001\u000003\u0001\u000009\u0002\u0000"+
|
||||
"09__\u0004\u0000$$AZ__az\u0002\u0000\u0000\u007f\u8000\ud800\u8000\udbff"+
|
||||
"\u0001\u0000\u8000\ud800\u8000\udbff\u0001\u0000\u8000\udc00\u8000\udfff"+
|
||||
"\u03e0\u0000\u0001\u0001\u0000\u0000\u0000\u0000\u0003\u0001\u0000\u0000"+
|
||||
"\u0000\u0000\u0005\u0001\u0000\u0000\u0000\u0000\u0007\u0001\u0000\u0000"+
|
||||
"\u0000\u0000\t\u0001\u0000\u0000\u0000\u0000\u000b\u0001\u0000\u0000\u0000"+
|
||||
"\u0000\r\u0001\u0000\u0000\u0000\u0000\u000f\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\u0011\u0001\u0000\u0000\u0000\u0000\u0013\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\u0015\u0001\u0000\u0000\u0000\u0000\u0017\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\u0019\u0001\u0000\u0000\u0000\u0000\u001b\u0001\u0000\u0000\u0000\u0000"+
|
||||
"\u001d\u0001\u0000\u0000\u0000\u0000\u001f\u0001\u0000\u0000\u0000\u0000"+
|
||||
"!\u0001\u0000\u0000\u0000\u0000#\u0001\u0000\u0000\u0000\u0000%\u0001"+
|
||||
"\u0000\u0000\u0000\u0000\'\u0001\u0000\u0000\u0000\u0000)\u0001\u0000"+
|
||||
"\u0000\u0000\u0000+\u0001\u0000\u0000\u0000\u0000-\u0001\u0000\u0000\u0000"+
|
||||
"\u0000/\u0001\u0000\u0000\u0000\u00001\u0001\u0000\u0000\u0000\u00003"+
|
||||
"\u0001\u0000\u0000\u0000\u00005\u0001\u0000\u0000\u0000\u00007\u0001\u0000"+
|
||||
"\u0000\u0000\u00009\u0001\u0000\u0000\u0000\u0000;\u0001\u0000\u0000\u0000"+
|
||||
"\u0000=\u0001\u0000\u0000\u0000\u0000?\u0001\u0000\u0000\u0000\u0000A"+
|
||||
"\u0001\u0000\u0000\u0000\u0000C\u0001\u0000\u0000\u0000\u0000E\u0001\u0000"+
|
||||
"\u0000\u0000\u0000G\u0001\u0000\u0000\u0000\u0000I\u0001\u0000\u0000\u0000"+
|
||||
"\u0000K\u0001\u0000\u0000\u0000\u0000M\u0001\u0000\u0000\u0000\u0000O"+
|
||||
"\u0001\u0000\u0000\u0000\u0000Q\u0001\u0000\u0000\u0000\u0000S\u0001\u0000"+
|
||||
"\u0000\u0000\u0000U\u0001\u0000\u0000\u0000\u0000W\u0001\u0000\u0000\u0000"+
|
||||
"\u0000Y\u0001\u0000\u0000\u0000\u0000[\u0001\u0000\u0000\u0000\u0000]"+
|
||||
"\u0001\u0000\u0000\u0000\u0000_\u0001\u0000\u0000\u0000\u0000a\u0001\u0000"+
|
||||
"\u0000\u0000\u0000c\u0001\u0000\u0000\u0000\u0000e\u0001\u0000\u0000\u0000"+
|
||||
"\u0000g\u0001\u0000\u0000\u0000\u0000i\u0001\u0000\u0000\u0000\u0000k"+
|
||||
"\u0001\u0000\u0000\u0000\u0000m\u0001\u0000\u0000\u0000\u0000o\u0001\u0000"+
|
||||
"\u0000\u0000\u0000q\u0001\u0000\u0000\u0000\u0000s\u0001\u0000\u0000\u0000"+
|
||||
"\u0000u\u0001\u0000\u0000\u0000\u0000w\u0001\u0000\u0000\u0000\u0000y"+
|
||||
"\u0001\u0000\u0000\u0000\u0000{\u0001\u0000\u0000\u0000\u0000}\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u007f\u0001\u0000\u0000\u0000\u0000\u0081\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0083\u0001\u0000\u0000\u0000\u0000\u0085\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0087\u0001\u0000\u0000\u0000\u0000\u0089\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u008b\u0001\u0000\u0000\u0000\u0000\u008d\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u008f\u0001\u0000\u0000\u0000\u0000\u0091\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0093\u0001\u0000\u0000\u0000\u0000\u0095\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u0097\u0001\u0000\u0000\u0000\u0000\u0099\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u009b\u0001\u0000\u0000\u0000\u0000\u009d\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u009f\u0001\u0000\u0000\u0000\u0000\u00a1\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00a3\u0001\u0000\u0000\u0000\u0000\u00a5\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00a7\u0001\u0000\u0000\u0000\u0000\u00a9\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00ab\u0001\u0000\u0000\u0000\u0000\u00ad\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00af\u0001\u0000\u0000\u0000\u0000\u00b1\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00b3\u0001\u0000\u0000\u0000\u0000\u00b5\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00b7\u0001\u0000\u0000\u0000\u0000\u00b9\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00bb\u0001\u0000\u0000\u0000\u0000\u00bd\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00bf\u0001\u0000\u0000\u0000\u0000\u00c1\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00c3\u0001\u0000\u0000\u0000\u0000\u00c5\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00c7\u0001\u0000\u0000\u0000\u0000\u00c9\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00cb\u0001\u0000\u0000\u0000\u0000\u00cd\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00cf\u0001\u0000\u0000\u0000\u0000\u00d1\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00d3\u0001\u0000\u0000\u0000\u0000\u00d5\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00d7\u0001\u0000\u0000\u0000\u0000\u00d9\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00db\u0001\u0000\u0000\u0000\u0000\u00dd\u0001\u0000"+
|
||||
"\u0000\u0000\u0000\u00df\u0001\u0000\u0000\u0000\u0001\u00ef\u0001\u0000"+
|
||||
"\u0000\u0000\u0003\u00f8\u0001\u0000\u0000\u0000\u0005\u00ff\u0001\u0000"+
|
||||
"\u0000\u0000\u0007\u0107\u0001\u0000\u0000\u0000\t\u010d\u0001\u0000\u0000"+
|
||||
"\u0000\u000b\u0112\u0001\u0000\u0000\u0000\r\u0117\u0001\u0000\u0000\u0000"+
|
||||
"\u000f\u011d\u0001\u0000\u0000\u0000\u0011\u0122\u0001\u0000\u0000\u0000"+
|
||||
"\u0013\u0128\u0001\u0000\u0000\u0000\u0015\u012e\u0001\u0000\u0000\u0000"+
|
||||
"\u0017\u0137\u0001\u0000\u0000\u0000\u0019\u013f\u0001\u0000\u0000\u0000"+
|
||||
"\u001b\u0142\u0001\u0000\u0000\u0000\u001d\u0149\u0001\u0000\u0000\u0000"+
|
||||
"\u001f\u014e\u0001\u0000\u0000\u0000!\u0153\u0001\u0000\u0000\u0000#\u015b"+
|
||||
"\u0001\u0000\u0000\u0000%\u0161\u0001\u0000\u0000\u0000\'\u0169\u0001"+
|
||||
"\u0000\u0000\u0000)\u016f\u0001\u0000\u0000\u0000+\u0173\u0001\u0000\u0000"+
|
||||
"\u0000-\u0176\u0001\u0000\u0000\u0000/\u017b\u0001\u0000\u0000\u00001"+
|
||||
"\u0186\u0001\u0000\u0000\u00003\u018d\u0001\u0000\u0000\u00005\u0198\u0001"+
|
||||
"\u0000\u0000\u00007\u019c\u0001\u0000\u0000\u00009\u01a6\u0001\u0000\u0000"+
|
||||
"\u0000;\u01ab\u0001\u0000\u0000\u0000=\u01b2\u0001\u0000\u0000\u0000?"+
|
||||
"\u01b6\u0001\u0000\u0000\u0000A\u01be\u0001\u0000\u0000\u0000C\u01c6\u0001"+
|
||||
"\u0000\u0000\u0000E\u01d0\u0001\u0000\u0000\u0000G\u01d7\u0001\u0000\u0000"+
|
||||
"\u0000I\u01de\u0001\u0000\u0000\u0000K\u01e4\u0001\u0000\u0000\u0000M"+
|
||||
"\u01eb\u0001\u0000\u0000\u0000O\u01f4\u0001\u0000\u0000\u0000Q\u01fa\u0001"+
|
||||
"\u0000\u0000\u0000S\u0201\u0001\u0000\u0000\u0000U\u020e\u0001\u0000\u0000"+
|
||||
"\u0000W\u0213\u0001\u0000\u0000\u0000Y\u0219\u0001\u0000\u0000\u0000["+
|
||||
"\u0220\u0001\u0000\u0000\u0000]\u022a\u0001\u0000\u0000\u0000_\u022e\u0001"+
|
||||
"\u0000\u0000\u0000a\u0232\u0001\u0000\u0000\u0000c\u0237\u0001\u0000\u0000"+
|
||||
"\u0000e\u0240\u0001\u0000\u0000\u0000g\u0253\u0001\u0000\u0000\u0000i"+
|
||||
"\u0258\u0001\u0000\u0000\u0000k\u0267\u0001\u0000\u0000\u0000m\u027b\u0001"+
|
||||
"\u0000\u0000\u0000o\u02a1\u0001\u0000\u0000\u0000q\u02a3\u0001\u0000\u0000"+
|
||||
"\u0000s\u02c1\u0001\u0000\u0000\u0000u\u02c3\u0001\u0000\u0000\u0000w"+
|
||||
"\u02ca\u0001\u0000\u0000\u0000y\u02d4\u0001\u0000\u0000\u0000{\u02d9\u0001"+
|
||||
"\u0000\u0000\u0000}\u02db\u0001\u0000\u0000\u0000\u007f\u02dd\u0001\u0000"+
|
||||
"\u0000\u0000\u0081\u02df\u0001\u0000\u0000\u0000\u0083\u02e1\u0001\u0000"+
|
||||
"\u0000\u0000\u0085\u02e3\u0001\u0000\u0000\u0000\u0087\u02e5\u0001\u0000"+
|
||||
"\u0000\u0000\u0089\u02e7\u0001\u0000\u0000\u0000\u008b\u02e9\u0001\u0000"+
|
||||
"\u0000\u0000\u008d\u02eb\u0001\u0000\u0000\u0000\u008f\u02ed\u0001\u0000"+
|
||||
"\u0000\u0000\u0091\u02ef\u0001\u0000\u0000\u0000\u0093\u02f1\u0001\u0000"+
|
||||
"\u0000\u0000\u0095\u02f3\u0001\u0000\u0000\u0000\u0097\u02f5\u0001\u0000"+
|
||||
"\u0000\u0000\u0099\u02f7\u0001\u0000\u0000\u0000\u009b\u02f9\u0001\u0000"+
|
||||
"\u0000\u0000\u009d\u02fc\u0001\u0000\u0000\u0000\u009f\u02ff\u0001\u0000"+
|
||||
"\u0000\u0000\u00a1\u0302\u0001\u0000\u0000\u0000\u00a3\u0305\u0001\u0000"+
|
||||
"\u0000\u0000\u00a5\u0308\u0001\u0000\u0000\u0000\u00a7\u030b\u0001\u0000"+
|
||||
"\u0000\u0000\u00a9\u030e\u0001\u0000\u0000\u0000\u00ab\u0311\u0001\u0000"+
|
||||
"\u0000\u0000\u00ad\u0313\u0001\u0000\u0000\u0000\u00af\u0315\u0001\u0000"+
|
||||
"\u0000\u0000\u00b1\u0317\u0001\u0000\u0000\u0000\u00b3\u0319\u0001\u0000"+
|
||||
"\u0000\u0000\u00b5\u031b\u0001\u0000\u0000\u0000\u00b7\u031d\u0001\u0000"+
|
||||
"\u0000\u0000\u00b9\u031f\u0001\u0000\u0000\u0000\u00bb\u0321\u0001\u0000"+
|
||||
"\u0000\u0000\u00bd\u0324\u0001\u0000\u0000\u0000\u00bf\u0327\u0001\u0000"+
|
||||
"\u0000\u0000\u00c1\u032a\u0001\u0000\u0000\u0000\u00c3\u032d\u0001\u0000"+
|
||||
"\u0000\u0000\u00c5\u0330\u0001\u0000\u0000\u0000\u00c7\u0333\u0001\u0000"+
|
||||
"\u0000\u0000\u00c9\u0336\u0001\u0000\u0000\u0000\u00cb\u0339\u0001\u0000"+
|
||||
"\u0000\u0000\u00cd\u033d\u0001\u0000\u0000\u0000\u00cf\u0341\u0001\u0000"+
|
||||
"\u0000\u0000\u00d1\u0346\u0001\u0000\u0000\u0000\u00d3\u0349\u0001\u0000"+
|
||||
"\u0000\u0000\u00d5\u034c\u0001\u0000\u0000\u0000\u00d7\u034e\u0001\u0000"+
|
||||
"\u0000\u0000\u00d9\u0353\u0001\u0000\u0000\u0000\u00db\u0359\u0001\u0000"+
|
||||
"\u0000\u0000\u00dd\u0367\u0001\u0000\u0000\u0000\u00df\u0372\u0001\u0000"+
|
||||
"\u0000\u0000\u00e1\u0379\u0001\u0000\u0000\u0000\u00e3\u0394\u0001\u0000"+
|
||||
"\u0000\u0000\u00e5\u0396\u0001\u0000\u0000\u0000\u00e7\u03a1\u0001\u0000"+
|
||||
"\u0000\u0000\u00e9\u03a3\u0001\u0000\u0000\u0000\u00eb\u03af\u0001\u0000"+
|
||||
"\u0000\u0000\u00ed\u03b5\u0001\u0000\u0000\u0000\u00ef\u00f0\u0005a\u0000"+
|
||||
"\u0000\u00f0\u00f1\u0005b\u0000\u0000\u00f1\u00f2\u0005s\u0000\u0000\u00f2"+
|
||||
"\u00f3\u0005t\u0000\u0000\u00f3\u00f4\u0005r\u0000\u0000\u00f4\u00f5\u0005"+
|
||||
"a\u0000\u0000\u00f5\u00f6\u0005c\u0000\u0000\u00f6\u00f7\u0005t\u0000"+
|
||||
"\u0000\u00f7\u0002\u0001\u0000\u0000\u0000\u00f8\u00f9\u0005a\u0000\u0000"+
|
||||
"\u00f9\u00fa\u0005s\u0000\u0000\u00fa\u00fb\u0005s\u0000\u0000\u00fb\u00fc"+
|
||||
"\u0005e\u0000\u0000\u00fc\u00fd\u0005r\u0000\u0000\u00fd\u00fe\u0005t"+
|
||||
"\u0000\u0000\u00fe\u0004\u0001\u0000\u0000\u0000\u00ff\u0100\u0005b\u0000"+
|
||||
"\u0000\u0100\u0101\u0005o\u0000\u0000\u0101\u0102\u0005o\u0000\u0000\u0102"+
|
||||
"\u0103\u0005l\u0000\u0000\u0103\u0104\u0005e\u0000\u0000\u0104\u0105\u0005"+
|
||||
"a\u0000\u0000\u0105\u0106\u0005n\u0000\u0000\u0106\u0006\u0001\u0000\u0000"+
|
||||
"\u0000\u0107\u0108\u0005b\u0000\u0000\u0108\u0109\u0005r\u0000\u0000\u0109"+
|
||||
"\u010a\u0005e\u0000\u0000\u010a\u010b\u0005a\u0000\u0000\u010b\u010c\u0005"+
|
||||
"k\u0000\u0000\u010c\b\u0001\u0000\u0000\u0000\u010d\u010e\u0005b\u0000"+
|
||||
"\u0000\u010e\u010f\u0005y\u0000\u0000\u010f\u0110\u0005t\u0000\u0000\u0110"+
|
||||
"\u0111\u0005e\u0000\u0000\u0111\n\u0001\u0000\u0000\u0000\u0112\u0113"+
|
||||
"\u0005c\u0000\u0000\u0113\u0114\u0005a\u0000\u0000\u0114\u0115\u0005s"+
|
||||
"\u0000\u0000\u0115\u0116\u0005e\u0000\u0000\u0116\f\u0001\u0000\u0000"+
|
||||
"\u0000\u0117\u0118\u0005c\u0000\u0000\u0118\u0119\u0005a\u0000\u0000\u0119"+
|
||||
"\u011a\u0005t\u0000\u0000\u011a\u011b\u0005c\u0000\u0000\u011b\u011c\u0005"+
|
||||
"h\u0000\u0000\u011c\u000e\u0001\u0000\u0000\u0000\u011d\u011e\u0005c\u0000"+
|
||||
"\u0000\u011e\u011f\u0005h\u0000\u0000\u011f\u0120\u0005a\u0000\u0000\u0120"+
|
||||
"\u0121\u0005r\u0000\u0000\u0121\u0010\u0001\u0000\u0000\u0000\u0122\u0123"+
|
||||
"\u0005c\u0000\u0000\u0123\u0124\u0005l\u0000\u0000\u0124\u0125\u0005a"+
|
||||
"\u0000\u0000\u0125\u0126\u0005s\u0000\u0000\u0126\u0127\u0005s\u0000\u0000"+
|
||||
"\u0127\u0012\u0001\u0000\u0000\u0000\u0128\u0129\u0005c\u0000\u0000\u0129"+
|
||||
"\u012a\u0005o\u0000\u0000\u012a\u012b\u0005n\u0000\u0000\u012b\u012c\u0005"+
|
||||
"s\u0000\u0000\u012c\u012d\u0005t\u0000\u0000\u012d\u0014\u0001\u0000\u0000"+
|
||||
"\u0000\u012e\u012f\u0005c\u0000\u0000\u012f\u0130\u0005o\u0000\u0000\u0130"+
|
||||
"\u0131\u0005n\u0000\u0000\u0131\u0132\u0005t\u0000\u0000\u0132\u0133\u0005"+
|
||||
"i\u0000\u0000\u0133\u0134\u0005n\u0000\u0000\u0134\u0135\u0005u\u0000"+
|
||||
"\u0000\u0135\u0136\u0005e\u0000\u0000\u0136\u0016\u0001\u0000\u0000\u0000"+
|
||||
"\u0137\u0138\u0005d\u0000\u0000\u0138\u0139\u0005e\u0000\u0000\u0139\u013a"+
|
||||
"\u0005f\u0000\u0000\u013a\u013b\u0005a\u0000\u0000\u013b\u013c\u0005u"+
|
||||
"\u0000\u0000\u013c\u013d\u0005l\u0000\u0000\u013d\u013e\u0005t\u0000\u0000"+
|
||||
"\u013e\u0018\u0001\u0000\u0000\u0000\u013f\u0140\u0005d\u0000\u0000\u0140"+
|
||||
"\u0141\u0005o\u0000\u0000\u0141\u001a\u0001\u0000\u0000\u0000\u0142\u0143"+
|
||||
"\u0005d\u0000\u0000\u0143\u0144\u0005o\u0000\u0000\u0144\u0145\u0005u"+
|
||||
"\u0000\u0000\u0145\u0146\u0005b\u0000\u0000\u0146\u0147\u0005l\u0000\u0000"+
|
||||
"\u0147\u0148\u0005e\u0000\u0000\u0148\u001c\u0001\u0000\u0000\u0000\u0149"+
|
||||
"\u014a\u0005e\u0000\u0000\u014a\u014b\u0005l\u0000\u0000\u014b\u014c\u0005"+
|
||||
"s\u0000\u0000\u014c\u014d\u0005e\u0000\u0000\u014d\u001e\u0001\u0000\u0000"+
|
||||
"\u0000\u014e\u014f\u0005e\u0000\u0000\u014f\u0150\u0005n\u0000\u0000\u0150"+
|
||||
"\u0151\u0005u\u0000\u0000\u0151\u0152\u0005m\u0000\u0000\u0152 \u0001"+
|
||||
"\u0000\u0000\u0000\u0153\u0154\u0005e\u0000\u0000\u0154\u0155\u0005x\u0000"+
|
||||
"\u0000\u0155\u0156\u0005t\u0000\u0000\u0156\u0157\u0005e\u0000\u0000\u0157"+
|
||||
"\u0158\u0005n\u0000\u0000\u0158\u0159\u0005d\u0000\u0000\u0159\u015a\u0005"+
|
||||
"s\u0000\u0000\u015a\"\u0001\u0000\u0000\u0000\u015b\u015c\u0005f\u0000"+
|
||||
"\u0000\u015c\u015d\u0005i\u0000\u0000\u015d\u015e\u0005n\u0000\u0000\u015e"+
|
||||
"\u015f\u0005a\u0000\u0000\u015f\u0160\u0005l\u0000\u0000\u0160$\u0001"+
|
||||
"\u0000\u0000\u0000\u0161\u0162\u0005f\u0000\u0000\u0162\u0163\u0005i\u0000"+
|
||||
"\u0000\u0163\u0164\u0005n\u0000\u0000\u0164\u0165\u0005a\u0000\u0000\u0165"+
|
||||
"\u0166\u0005l\u0000\u0000\u0166\u0167\u0005l\u0000\u0000\u0167\u0168\u0005"+
|
||||
"y\u0000\u0000\u0168&\u0001\u0000\u0000\u0000\u0169\u016a\u0005f\u0000"+
|
||||
"\u0000\u016a\u016b\u0005l\u0000\u0000\u016b\u016c\u0005o\u0000\u0000\u016c"+
|
||||
"\u016d\u0005a\u0000\u0000\u016d\u016e\u0005t\u0000\u0000\u016e(\u0001"+
|
||||
"\u0000\u0000\u0000\u016f\u0170\u0005f\u0000\u0000\u0170\u0171\u0005o\u0000"+
|
||||
"\u0000\u0171\u0172\u0005r\u0000\u0000\u0172*\u0001\u0000\u0000\u0000\u0173"+
|
||||
"\u0174\u0005i\u0000\u0000\u0174\u0175\u0005f\u0000\u0000\u0175,\u0001"+
|
||||
"\u0000\u0000\u0000\u0176\u0177\u0005g\u0000\u0000\u0177\u0178\u0005o\u0000"+
|
||||
"\u0000\u0178\u0179\u0005t\u0000\u0000\u0179\u017a\u0005o\u0000\u0000\u017a"+
|
||||
".\u0001\u0000\u0000\u0000\u017b\u017c\u0005i\u0000\u0000\u017c\u017d\u0005"+
|
||||
"m\u0000\u0000\u017d\u017e\u0005p\u0000\u0000\u017e\u017f\u0005l\u0000"+
|
||||
"\u0000\u017f\u0180\u0005e\u0000\u0000\u0180\u0181\u0005m\u0000\u0000\u0181"+
|
||||
"\u0182\u0005e\u0000\u0000\u0182\u0183\u0005n\u0000\u0000\u0183\u0184\u0005"+
|
||||
"t\u0000\u0000\u0184\u0185\u0005s\u0000\u0000\u01850\u0001\u0000\u0000"+
|
||||
"\u0000\u0186\u0187\u0005i\u0000\u0000\u0187\u0188\u0005m\u0000\u0000\u0188"+
|
||||
"\u0189\u0005p\u0000\u0000\u0189\u018a\u0005o\u0000\u0000\u018a\u018b\u0005"+
|
||||
"r\u0000\u0000\u018b\u018c\u0005t\u0000\u0000\u018c2\u0001\u0000\u0000"+
|
||||
"\u0000\u018d\u018e\u0005i\u0000\u0000\u018e\u018f\u0005n\u0000\u0000\u018f"+
|
||||
"\u0190\u0005s\u0000\u0000\u0190\u0191\u0005t\u0000\u0000\u0191\u0192\u0005"+
|
||||
"a\u0000\u0000\u0192\u0193\u0005n\u0000\u0000\u0193\u0194\u0005c\u0000"+
|
||||
"\u0000\u0194\u0195\u0005e\u0000\u0000\u0195\u0196\u0005o\u0000\u0000\u0196"+
|
||||
"\u0197\u0005f\u0000\u0000\u01974\u0001\u0000\u0000\u0000\u0198\u0199\u0005"+
|
||||
"i\u0000\u0000\u0199\u019a\u0005n\u0000\u0000\u019a\u019b\u0005t\u0000"+
|
||||
"\u0000\u019b6\u0001\u0000\u0000\u0000\u019c\u019d\u0005i\u0000\u0000\u019d"+
|
||||
"\u019e\u0005n\u0000\u0000\u019e\u019f\u0005t\u0000\u0000\u019f\u01a0\u0005"+
|
||||
"e\u0000\u0000\u01a0\u01a1\u0005r\u0000\u0000\u01a1\u01a2\u0005f\u0000"+
|
||||
"\u0000\u01a2\u01a3\u0005a\u0000\u0000\u01a3\u01a4\u0005c\u0000\u0000\u01a4"+
|
||||
"\u01a5\u0005e\u0000\u0000\u01a58\u0001\u0000\u0000\u0000\u01a6\u01a7\u0005"+
|
||||
"l\u0000\u0000\u01a7\u01a8\u0005o\u0000\u0000\u01a8\u01a9\u0005n\u0000"+
|
||||
"\u0000\u01a9\u01aa\u0005g\u0000\u0000\u01aa:\u0001\u0000\u0000\u0000\u01ab"+
|
||||
"\u01ac\u0005n\u0000\u0000\u01ac\u01ad\u0005a\u0000\u0000\u01ad\u01ae\u0005"+
|
||||
"t\u0000\u0000\u01ae\u01af\u0005i\u0000\u0000\u01af\u01b0\u0005v\u0000"+
|
||||
"\u0000\u01b0\u01b1\u0005e\u0000\u0000\u01b1<\u0001\u0000\u0000\u0000\u01b2"+
|
||||
"\u01b3\u0005n\u0000\u0000\u01b3\u01b4\u0005e\u0000\u0000\u01b4\u01b5\u0005"+
|
||||
"w\u0000\u0000\u01b5>\u0001\u0000\u0000\u0000\u01b6\u01b7\u0005p\u0000"+
|
||||
"\u0000\u01b7\u01b8\u0005a\u0000\u0000\u01b8\u01b9\u0005c\u0000\u0000\u01b9"+
|
||||
"\u01ba\u0005k\u0000\u0000\u01ba\u01bb\u0005a\u0000\u0000\u01bb\u01bc\u0005"+
|
||||
"g\u0000\u0000\u01bc\u01bd\u0005e\u0000\u0000\u01bd@\u0001\u0000\u0000"+
|
||||
"\u0000\u01be\u01bf\u0005p\u0000\u0000\u01bf\u01c0\u0005r\u0000\u0000\u01c0"+
|
||||
"\u01c1\u0005i\u0000\u0000\u01c1\u01c2\u0005v\u0000\u0000\u01c2\u01c3\u0005"+
|
||||
"a\u0000\u0000\u01c3\u01c4\u0005t\u0000\u0000\u01c4\u01c5\u0005e\u0000"+
|
||||
"\u0000\u01c5B\u0001\u0000\u0000\u0000\u01c6\u01c7\u0005p\u0000\u0000\u01c7"+
|
||||
"\u01c8\u0005r\u0000\u0000\u01c8\u01c9\u0005o\u0000\u0000\u01c9\u01ca\u0005"+
|
||||
"t\u0000\u0000\u01ca\u01cb\u0005e\u0000\u0000\u01cb\u01cc\u0005c\u0000"+
|
||||
"\u0000\u01cc\u01cd\u0005t\u0000\u0000\u01cd\u01ce\u0005e\u0000\u0000\u01ce"+
|
||||
"\u01cf\u0005d\u0000\u0000\u01cfD\u0001\u0000\u0000\u0000\u01d0\u01d1\u0005"+
|
||||
"p\u0000\u0000\u01d1\u01d2\u0005u\u0000\u0000\u01d2\u01d3\u0005b\u0000"+
|
||||
"\u0000\u01d3\u01d4\u0005l\u0000\u0000\u01d4\u01d5\u0005i\u0000\u0000\u01d5"+
|
||||
"\u01d6\u0005c\u0000\u0000\u01d6F\u0001\u0000\u0000\u0000\u01d7\u01d8\u0005"+
|
||||
"r\u0000\u0000\u01d8\u01d9\u0005e\u0000\u0000\u01d9\u01da\u0005t\u0000"+
|
||||
"\u0000\u01da\u01db\u0005u\u0000\u0000\u01db\u01dc\u0005r\u0000\u0000\u01dc"+
|
||||
"\u01dd\u0005n\u0000\u0000\u01ddH\u0001\u0000\u0000\u0000\u01de\u01df\u0005"+
|
||||
"s\u0000\u0000\u01df\u01e0\u0005h\u0000\u0000\u01e0\u01e1\u0005o\u0000"+
|
||||
"\u0000\u01e1\u01e2\u0005r\u0000\u0000\u01e2\u01e3\u0005t\u0000\u0000\u01e3"+
|
||||
"J\u0001\u0000\u0000\u0000\u01e4\u01e5\u0005s\u0000\u0000\u01e5\u01e6\u0005"+
|
||||
"t\u0000\u0000\u01e6\u01e7\u0005a\u0000\u0000\u01e7\u01e8\u0005t\u0000"+
|
||||
"\u0000\u01e8\u01e9\u0005i\u0000\u0000\u01e9\u01ea\u0005c\u0000\u0000\u01ea"+
|
||||
"L\u0001\u0000\u0000\u0000\u01eb\u01ec\u0005s\u0000\u0000\u01ec\u01ed\u0005"+
|
||||
"t\u0000\u0000\u01ed\u01ee\u0005r\u0000\u0000\u01ee\u01ef\u0005i\u0000"+
|
||||
"\u0000\u01ef\u01f0\u0005c\u0000\u0000\u01f0\u01f1\u0005t\u0000\u0000\u01f1"+
|
||||
"\u01f2\u0005f\u0000\u0000\u01f2\u01f3\u0005p\u0000\u0000\u01f3N\u0001"+
|
||||
"\u0000\u0000\u0000\u01f4\u01f5\u0005s\u0000\u0000\u01f5\u01f6\u0005u\u0000"+
|
||||
"\u0000\u01f6\u01f7\u0005p\u0000\u0000\u01f7\u01f8\u0005e\u0000\u0000\u01f8"+
|
||||
"\u01f9\u0005r\u0000\u0000\u01f9P\u0001\u0000\u0000\u0000\u01fa\u01fb\u0005"+
|
||||
"s\u0000\u0000\u01fb\u01fc\u0005w\u0000\u0000\u01fc\u01fd\u0005i\u0000"+
|
||||
"\u0000\u01fd\u01fe\u0005t\u0000\u0000\u01fe\u01ff\u0005c\u0000\u0000\u01ff"+
|
||||
"\u0200\u0005h\u0000\u0000\u0200R\u0001\u0000\u0000\u0000\u0201\u0202\u0005"+
|
||||
"s\u0000\u0000\u0202\u0203\u0005y\u0000\u0000\u0203\u0204\u0005n\u0000"+
|
||||
"\u0000\u0204\u0205\u0005c\u0000\u0000\u0205\u0206\u0005h\u0000\u0000\u0206"+
|
||||
"\u0207\u0005r\u0000\u0000\u0207\u0208\u0005o\u0000\u0000\u0208\u0209\u0005"+
|
||||
"n\u0000\u0000\u0209\u020a\u0005i\u0000\u0000\u020a\u020b\u0005z\u0000"+
|
||||
"\u0000\u020b\u020c\u0005e\u0000\u0000\u020c\u020d\u0005d\u0000\u0000\u020d"+
|
||||
"T\u0001\u0000\u0000\u0000\u020e\u020f\u0005t\u0000\u0000\u020f\u0210\u0005"+
|
||||
"h\u0000\u0000\u0210\u0211\u0005i\u0000\u0000\u0211\u0212\u0005s\u0000"+
|
||||
"\u0000\u0212V\u0001\u0000\u0000\u0000\u0213\u0214\u0005t\u0000\u0000\u0214"+
|
||||
"\u0215\u0005h\u0000\u0000\u0215\u0216\u0005r\u0000\u0000\u0216\u0217\u0005"+
|
||||
"o\u0000\u0000\u0217\u0218\u0005w\u0000\u0000\u0218X\u0001\u0000\u0000"+
|
||||
"\u0000\u0219\u021a\u0005t\u0000\u0000\u021a\u021b\u0005h\u0000\u0000\u021b"+
|
||||
"\u021c\u0005r\u0000\u0000\u021c\u021d\u0005o\u0000\u0000\u021d\u021e\u0005"+
|
||||
"w\u0000\u0000\u021e\u021f\u0005s\u0000\u0000\u021fZ\u0001\u0000\u0000"+
|
||||
"\u0000\u0220\u0221\u0005t\u0000\u0000\u0221\u0222\u0005r\u0000\u0000\u0222"+
|
||||
"\u0223\u0005a\u0000\u0000\u0223\u0224\u0005n\u0000\u0000\u0224\u0225\u0005"+
|
||||
"s\u0000\u0000\u0225\u0226\u0005i\u0000\u0000\u0226\u0227\u0005e\u0000"+
|
||||
"\u0000\u0227\u0228\u0005n\u0000\u0000\u0228\u0229\u0005t\u0000\u0000\u0229"+
|
||||
"\\\u0001\u0000\u0000\u0000\u022a\u022b\u0005t\u0000\u0000\u022b\u022c"+
|
||||
"\u0005r\u0000\u0000\u022c\u022d\u0005y\u0000\u0000\u022d^\u0001\u0000"+
|
||||
"\u0000\u0000\u022e\u022f\u0005v\u0000\u0000\u022f\u0230\u0005a\u0000\u0000"+
|
||||
"\u0230\u0231\u0005r\u0000\u0000\u0231`\u0001\u0000\u0000\u0000\u0232\u0233"+
|
||||
"\u0005v\u0000\u0000\u0233\u0234\u0005o\u0000\u0000\u0234\u0235\u0005i"+
|
||||
"\u0000\u0000\u0235\u0236\u0005d\u0000\u0000\u0236b\u0001\u0000\u0000\u0000"+
|
||||
"\u0237\u0238\u0005v\u0000\u0000\u0238\u0239\u0005o\u0000\u0000\u0239\u023a"+
|
||||
"\u0005l\u0000\u0000\u023a\u023b\u0005a\u0000\u0000\u023b\u023c\u0005t"+
|
||||
"\u0000\u0000\u023c\u023d\u0005i\u0000\u0000\u023d\u023e\u0005l\u0000\u0000"+
|
||||
"\u023e\u023f\u0005e\u0000\u0000\u023fd\u0001\u0000\u0000\u0000\u0240\u0241"+
|
||||
"\u0005w\u0000\u0000\u0241\u0242\u0005h\u0000\u0000\u0242\u0243\u0005i"+
|
||||
"\u0000\u0000\u0243\u0244\u0005l\u0000\u0000\u0244\u0245\u0005e\u0000\u0000"+
|
||||
"\u0245f\u0001\u0000\u0000\u0000\u0246\u0254\u00050\u0000\u0000\u0247\u0251"+
|
||||
"\u0007\u0000\u0000\u0000\u0248\u024a\u0003\u00e9t\u0000\u0249\u0248\u0001"+
|
||||
"\u0000\u0000\u0000\u0249\u024a\u0001\u0000\u0000\u0000\u024a\u0252\u0001"+
|
||||
"\u0000\u0000\u0000\u024b\u024d\u0005_\u0000\u0000\u024c\u024b\u0001\u0000"+
|
||||
"\u0000\u0000\u024d\u024e\u0001\u0000\u0000\u0000\u024e\u024c\u0001\u0000"+
|
||||
"\u0000\u0000\u024e\u024f\u0001\u0000\u0000\u0000\u024f\u0250\u0001\u0000"+
|
||||
"\u0000\u0000\u0250\u0252\u0003\u00e9t\u0000\u0251\u0249\u0001\u0000\u0000"+
|
||||
"\u0000\u0251\u024c\u0001\u0000\u0000\u0000\u0252\u0254\u0001\u0000\u0000"+
|
||||
"\u0000\u0253\u0246\u0001\u0000\u0000\u0000\u0253\u0247\u0001\u0000\u0000"+
|
||||
"\u0000\u0254\u0256\u0001\u0000\u0000\u0000\u0255\u0257\u0007\u0001\u0000"+
|
||||
"\u0000\u0256\u0255\u0001\u0000\u0000\u0000\u0256\u0257\u0001\u0000\u0000"+
|
||||
"\u0000\u0257h\u0001\u0000\u0000\u0000\u0258\u0259\u00050\u0000\u0000\u0259"+
|
||||
"\u025a\u0007\u0002\u0000\u0000\u025a\u0262\u0007\u0003\u0000\u0000\u025b"+
|
||||
"\u025d\u0007\u0004\u0000\u0000\u025c\u025b\u0001\u0000\u0000\u0000\u025d"+
|
||||
"\u0260\u0001\u0000\u0000\u0000\u025e\u025c\u0001\u0000\u0000\u0000\u025e"+
|
||||
"\u025f\u0001\u0000\u0000\u0000\u025f\u0261\u0001\u0000\u0000\u0000\u0260"+
|
||||
"\u025e\u0001\u0000\u0000\u0000\u0261\u0263\u0007\u0003\u0000\u0000\u0262"+
|
||||
"\u025e\u0001\u0000\u0000\u0000\u0262\u0263\u0001\u0000\u0000\u0000\u0263"+
|
||||
"\u0265\u0001\u0000\u0000\u0000\u0264\u0266\u0007\u0001\u0000\u0000\u0265"+
|
||||
"\u0264\u0001\u0000\u0000\u0000\u0265\u0266\u0001\u0000\u0000\u0000\u0266"+
|
||||
"j\u0001\u0000\u0000\u0000\u0267\u026b\u00050\u0000\u0000\u0268\u026a\u0005"+
|
||||
"_\u0000\u0000\u0269\u0268\u0001\u0000\u0000\u0000\u026a\u026d\u0001\u0000"+
|
||||
"\u0000\u0000\u026b\u0269\u0001\u0000\u0000\u0000\u026b\u026c\u0001\u0000"+
|
||||
"\u0000\u0000\u026c\u026e\u0001\u0000\u0000\u0000\u026d\u026b\u0001\u0000"+
|
||||
"\u0000\u0000\u026e\u0276\u0007\u0005\u0000\u0000\u026f\u0271\u0007\u0006"+
|
||||
"\u0000\u0000\u0270\u026f\u0001\u0000\u0000\u0000\u0271\u0274\u0001\u0000"+
|
||||
"\u0000\u0000\u0272\u0270\u0001\u0000\u0000\u0000\u0272\u0273\u0001\u0000"+
|
||||
"\u0000\u0000\u0273\u0275\u0001\u0000\u0000\u0000\u0274\u0272\u0001\u0000"+
|
||||
"\u0000\u0000\u0275\u0277\u0007\u0005\u0000\u0000\u0276\u0272\u0001\u0000"+
|
||||
"\u0000\u0000\u0276\u0277\u0001\u0000\u0000\u0000\u0277\u0279\u0001\u0000"+
|
||||
"\u0000\u0000\u0278\u027a\u0007\u0001\u0000\u0000\u0279\u0278\u0001\u0000"+
|
||||
"\u0000\u0000\u0279\u027a\u0001\u0000\u0000\u0000\u027al\u0001\u0000\u0000"+
|
||||
"\u0000\u027b\u027c\u00050\u0000\u0000\u027c\u027d\u0007\u0007\u0000\u0000"+
|
||||
"\u027d\u0285\u0007\b\u0000\u0000\u027e\u0280\u0007\t\u0000\u0000\u027f"+
|
||||
"\u027e\u0001\u0000\u0000\u0000\u0280\u0283\u0001\u0000\u0000\u0000\u0281"+
|
||||
"\u027f\u0001\u0000\u0000\u0000\u0281\u0282\u0001\u0000\u0000\u0000\u0282"+
|
||||
"\u0284\u0001\u0000\u0000\u0000\u0283\u0281\u0001\u0000\u0000\u0000\u0284"+
|
||||
"\u0286\u0007\b\u0000\u0000\u0285\u0281\u0001\u0000\u0000\u0000\u0285\u0286"+
|
||||
"\u0001\u0000\u0000\u0000\u0286\u0288\u0001\u0000\u0000\u0000\u0287\u0289"+
|
||||
"\u0007\u0001\u0000\u0000\u0288\u0287\u0001\u0000\u0000\u0000\u0288\u0289"+
|
||||
"\u0001\u0000\u0000\u0000\u0289n\u0001\u0000\u0000\u0000\u028a\u028b\u0003"+
|
||||
"\u00e9t\u0000\u028b\u028d\u0005.\u0000\u0000\u028c\u028e\u0003\u00e9t"+
|
||||
"\u0000\u028d\u028c\u0001\u0000\u0000\u0000\u028d\u028e\u0001\u0000\u0000"+
|
||||
"\u0000\u028e\u0292\u0001\u0000\u0000\u0000\u028f\u0290\u0005.\u0000\u0000"+
|
||||
"\u0290\u0292\u0003\u00e9t\u0000\u0291\u028a\u0001\u0000\u0000\u0000\u0291"+
|
||||
"\u028f\u0001\u0000\u0000\u0000\u0292\u0294\u0001\u0000\u0000\u0000\u0293"+
|
||||
"\u0295\u0003\u00e1p\u0000\u0294\u0293\u0001\u0000\u0000\u0000\u0294\u0295"+
|
||||
"\u0001\u0000\u0000\u0000\u0295\u0297\u0001\u0000\u0000\u0000\u0296\u0298"+
|
||||
"\u0007\n\u0000\u0000\u0297\u0296\u0001\u0000\u0000\u0000\u0297\u0298\u0001"+
|
||||
"\u0000\u0000\u0000\u0298\u02a2\u0001\u0000\u0000\u0000\u0299\u029f\u0003"+
|
||||
"\u00e9t\u0000\u029a\u029c\u0003\u00e1p\u0000\u029b\u029d\u0007\n\u0000"+
|
||||
"\u0000\u029c\u029b\u0001\u0000\u0000\u0000\u029c\u029d\u0001\u0000\u0000"+
|
||||
"\u0000\u029d\u02a0\u0001\u0000\u0000\u0000\u029e\u02a0\u0007\n\u0000\u0000"+
|
||||
"\u029f\u029a\u0001\u0000\u0000\u0000\u029f\u029e\u0001\u0000\u0000\u0000"+
|
||||
"\u02a0\u02a2\u0001\u0000\u0000\u0000\u02a1\u0291\u0001\u0000\u0000\u0000"+
|
||||
"\u02a1\u0299\u0001\u0000\u0000\u0000\u02a2p\u0001\u0000\u0000\u0000\u02a3"+
|
||||
"\u02a4\u00050\u0000\u0000\u02a4\u02ae\u0007\u0002\u0000\u0000\u02a5\u02a7"+
|
||||
"\u0003\u00e5r\u0000\u02a6\u02a8\u0005.\u0000\u0000\u02a7\u02a6\u0001\u0000"+
|
||||
"\u0000\u0000\u02a7\u02a8\u0001\u0000\u0000\u0000\u02a8\u02af\u0001\u0000"+
|
||||
"\u0000\u0000\u02a9\u02ab\u0003\u00e5r\u0000\u02aa\u02a9\u0001\u0000\u0000"+
|
||||
"\u0000\u02aa\u02ab\u0001\u0000\u0000\u0000\u02ab\u02ac\u0001\u0000\u0000"+
|
||||
"\u0000\u02ac\u02ad\u0005.\u0000\u0000\u02ad\u02af\u0003\u00e5r\u0000\u02ae"+
|
||||
"\u02a5\u0001\u0000\u0000\u0000\u02ae\u02aa\u0001\u0000\u0000\u0000\u02af"+
|
||||
"\u02b0\u0001\u0000\u0000\u0000\u02b0\u02b2\u0007\u000b\u0000\u0000\u02b1"+
|
||||
"\u02b3\u0007\f\u0000\u0000\u02b2\u02b1\u0001\u0000\u0000\u0000\u02b2\u02b3"+
|
||||
"\u0001\u0000\u0000\u0000\u02b3\u02b4\u0001\u0000\u0000\u0000\u02b4\u02b6"+
|
||||
"\u0003\u00e9t\u0000\u02b5\u02b7\u0007\n\u0000\u0000\u02b6\u02b5\u0001"+
|
||||
"\u0000\u0000\u0000\u02b6\u02b7\u0001\u0000\u0000\u0000\u02b7r\u0001\u0000"+
|
||||
"\u0000\u0000\u02b8\u02b9\u0005t\u0000\u0000\u02b9\u02ba\u0005r\u0000\u0000"+
|
||||
"\u02ba\u02bb\u0005u\u0000\u0000\u02bb\u02c2\u0005e\u0000\u0000\u02bc\u02bd"+
|
||||
"\u0005f\u0000\u0000\u02bd\u02be\u0005a\u0000\u0000\u02be\u02bf\u0005l"+
|
||||
"\u0000\u0000\u02bf\u02c0\u0005s\u0000\u0000\u02c0\u02c2\u0005e\u0000\u0000"+
|
||||
"\u02c1\u02b8\u0001\u0000\u0000\u0000\u02c1\u02bc\u0001\u0000\u0000\u0000"+
|
||||
"\u02c2t\u0001\u0000\u0000\u0000\u02c3\u02c6\u0005\'\u0000\u0000\u02c4"+
|
||||
"\u02c7\b\r\u0000\u0000\u02c5\u02c7\u0003\u00e3q\u0000\u02c6\u02c4\u0001"+
|
||||
"\u0000\u0000\u0000\u02c6\u02c5\u0001\u0000\u0000\u0000\u02c7\u02c8\u0001"+
|
||||
"\u0000\u0000\u0000\u02c8\u02c9\u0005\'\u0000\u0000\u02c9v\u0001\u0000"+
|
||||
"\u0000\u0000\u02ca\u02cf\u0005\"\u0000\u0000\u02cb\u02ce\b\u000e\u0000"+
|
||||
"\u0000\u02cc\u02ce\u0003\u00e3q\u0000\u02cd\u02cb\u0001\u0000\u0000\u0000"+
|
||||
"\u02cd\u02cc\u0001\u0000\u0000\u0000\u02ce\u02d1\u0001\u0000\u0000\u0000"+
|
||||
"\u02cf\u02cd\u0001\u0000\u0000\u0000\u02cf\u02d0\u0001\u0000\u0000\u0000"+
|
||||
"\u02d0\u02d2\u0001\u0000\u0000\u0000\u02d1\u02cf\u0001\u0000\u0000\u0000"+
|
||||
"\u02d2\u02d3\u0005\"\u0000\u0000\u02d3x\u0001\u0000\u0000\u0000\u02d4"+
|
||||
"\u02d5\u0005n\u0000\u0000\u02d5\u02d6\u0005u\u0000\u0000\u02d6\u02d7\u0005"+
|
||||
"l\u0000\u0000\u02d7\u02d8\u0005l\u0000\u0000\u02d8z\u0001\u0000\u0000"+
|
||||
"\u0000\u02d9\u02da\u0005(\u0000\u0000\u02da|\u0001\u0000\u0000\u0000\u02db"+
|
||||
"\u02dc\u0005)\u0000\u0000\u02dc~\u0001\u0000\u0000\u0000\u02dd\u02de\u0005"+
|
||||
"{\u0000\u0000\u02de\u0080\u0001\u0000\u0000\u0000\u02df\u02e0\u0005}\u0000"+
|
||||
"\u0000\u02e0\u0082\u0001\u0000\u0000\u0000\u02e1\u02e2\u0005[\u0000\u0000"+
|
||||
"\u02e2\u0084\u0001\u0000\u0000\u0000\u02e3\u02e4\u0005]\u0000\u0000\u02e4"+
|
||||
"\u0086\u0001\u0000\u0000\u0000\u02e5\u02e6\u0005;\u0000\u0000\u02e6\u0088"+
|
||||
"\u0001\u0000\u0000\u0000\u02e7\u02e8\u0005,\u0000\u0000\u02e8\u008a\u0001"+
|
||||
"\u0000\u0000\u0000\u02e9\u02ea\u0005.\u0000\u0000\u02ea\u008c\u0001\u0000"+
|
||||
"\u0000\u0000\u02eb\u02ec\u0005=\u0000\u0000\u02ec\u008e\u0001\u0000\u0000"+
|
||||
"\u0000\u02ed\u02ee\u0005>\u0000\u0000\u02ee\u0090\u0001\u0000\u0000\u0000"+
|
||||
"\u02ef\u02f0\u0005<\u0000\u0000\u02f0\u0092\u0001\u0000\u0000\u0000\u02f1"+
|
||||
"\u02f2\u0005!\u0000\u0000\u02f2\u0094\u0001\u0000\u0000\u0000\u02f3\u02f4"+
|
||||
"\u0005~\u0000\u0000\u02f4\u0096\u0001\u0000\u0000\u0000\u02f5\u02f6\u0005"+
|
||||
"?\u0000\u0000\u02f6\u0098\u0001\u0000\u0000\u0000\u02f7\u02f8\u0005:\u0000"+
|
||||
"\u0000\u02f8\u009a\u0001\u0000\u0000\u0000\u02f9\u02fa\u0005=\u0000\u0000"+
|
||||
"\u02fa\u02fb\u0005=\u0000\u0000\u02fb\u009c\u0001\u0000\u0000\u0000\u02fc"+
|
||||
"\u02fd\u0005<\u0000\u0000\u02fd\u02fe\u0005=\u0000\u0000\u02fe\u009e\u0001"+
|
||||
"\u0000\u0000\u0000\u02ff\u0300\u0005>\u0000\u0000\u0300\u0301\u0005=\u0000"+
|
||||
"\u0000\u0301\u00a0\u0001\u0000\u0000\u0000\u0302\u0303\u0005!\u0000\u0000"+
|
||||
"\u0303\u0304\u0005=\u0000\u0000\u0304\u00a2\u0001\u0000\u0000\u0000\u0305"+
|
||||
"\u0306\u0005&\u0000\u0000\u0306\u0307\u0005&\u0000\u0000\u0307\u00a4\u0001"+
|
||||
"\u0000\u0000\u0000\u0308\u0309\u0005|\u0000\u0000\u0309\u030a\u0005|\u0000"+
|
||||
"\u0000\u030a\u00a6\u0001\u0000\u0000\u0000\u030b\u030c\u0005+\u0000\u0000"+
|
||||
"\u030c\u030d\u0005+\u0000\u0000\u030d\u00a8\u0001\u0000\u0000\u0000\u030e"+
|
||||
"\u030f\u0005-\u0000\u0000\u030f\u0310\u0005-\u0000\u0000\u0310\u00aa\u0001"+
|
||||
"\u0000\u0000\u0000\u0311\u0312\u0005+\u0000\u0000\u0312\u00ac\u0001\u0000"+
|
||||
"\u0000\u0000\u0313\u0314\u0005-\u0000\u0000\u0314\u00ae\u0001\u0000\u0000"+
|
||||
"\u0000\u0315\u0316\u0005*\u0000\u0000\u0316\u00b0\u0001\u0000\u0000\u0000"+
|
||||
"\u0317\u0318\u0005/\u0000\u0000\u0318\u00b2\u0001\u0000\u0000\u0000\u0319"+
|
||||
"\u031a\u0005&\u0000\u0000\u031a\u00b4\u0001\u0000\u0000\u0000\u031b\u031c"+
|
||||
"\u0005|\u0000\u0000\u031c\u00b6\u0001\u0000\u0000\u0000\u031d\u031e\u0005"+
|
||||
"^\u0000\u0000\u031e\u00b8\u0001\u0000\u0000\u0000\u031f\u0320\u0005%\u0000"+
|
||||
"\u0000\u0320\u00ba\u0001\u0000\u0000\u0000\u0321\u0322\u0005+\u0000\u0000"+
|
||||
"\u0322\u0323\u0005=\u0000\u0000\u0323\u00bc\u0001\u0000\u0000\u0000\u0324"+
|
||||
"\u0325\u0005-\u0000\u0000\u0325\u0326\u0005=\u0000\u0000\u0326\u00be\u0001"+
|
||||
"\u0000\u0000\u0000\u0327\u0328\u0005*\u0000\u0000\u0328\u0329\u0005=\u0000"+
|
||||
"\u0000\u0329\u00c0\u0001\u0000\u0000\u0000\u032a\u032b\u0005/\u0000\u0000"+
|
||||
"\u032b\u032c\u0005=\u0000\u0000\u032c\u00c2\u0001\u0000\u0000\u0000\u032d"+
|
||||
"\u032e\u0005&\u0000\u0000\u032e\u032f\u0005=\u0000\u0000\u032f\u00c4\u0001"+
|
||||
"\u0000\u0000\u0000\u0330\u0331\u0005|\u0000\u0000\u0331\u0332\u0005=\u0000"+
|
||||
"\u0000\u0332\u00c6\u0001\u0000\u0000\u0000\u0333\u0334\u0005^\u0000\u0000"+
|
||||
"\u0334\u0335\u0005=\u0000\u0000\u0335\u00c8\u0001\u0000\u0000\u0000\u0336"+
|
||||
"\u0337\u0005%\u0000\u0000\u0337\u0338\u0005=\u0000\u0000\u0338\u00ca\u0001"+
|
||||
"\u0000\u0000\u0000\u0339\u033a\u0005<\u0000\u0000\u033a\u033b\u0005<\u0000"+
|
||||
"\u0000\u033b\u033c\u0005=\u0000\u0000\u033c\u00cc\u0001\u0000\u0000\u0000"+
|
||||
"\u033d\u033e\u0005>\u0000\u0000\u033e\u033f\u0005>\u0000\u0000\u033f\u0340"+
|
||||
"\u0005=\u0000\u0000\u0340\u00ce\u0001\u0000\u0000\u0000\u0341\u0342\u0005"+
|
||||
">\u0000\u0000\u0342\u0343\u0005>\u0000\u0000\u0343\u0344\u0005>\u0000"+
|
||||
"\u0000\u0344\u0345\u0005=\u0000\u0000\u0345\u00d0\u0001\u0000\u0000\u0000"+
|
||||
"\u0346\u0347\u0005-\u0000\u0000\u0347\u0348\u0005>\u0000\u0000\u0348\u00d2"+
|
||||
"\u0001\u0000\u0000\u0000\u0349\u034a\u0005:\u0000\u0000\u034a\u034b\u0005"+
|
||||
":\u0000\u0000\u034b\u00d4\u0001\u0000\u0000\u0000\u034c\u034d\u0005@\u0000"+
|
||||
"\u0000\u034d\u00d6\u0001\u0000\u0000\u0000\u034e\u034f\u0005.\u0000\u0000"+
|
||||
"\u034f\u0350\u0005.\u0000\u0000\u0350\u0351\u0005.\u0000\u0000\u0351\u00d8"+
|
||||
"\u0001\u0000\u0000\u0000\u0352\u0354\u0007\u000f\u0000\u0000\u0353\u0352"+
|
||||
"\u0001\u0000\u0000\u0000\u0354\u0355\u0001\u0000\u0000\u0000\u0355\u0353"+
|
||||
"\u0001\u0000\u0000\u0000\u0355\u0356\u0001\u0000\u0000\u0000\u0356\u0357"+
|
||||
"\u0001\u0000\u0000\u0000\u0357\u0358\u0006l\u0000\u0000\u0358\u00da\u0001"+
|
||||
"\u0000\u0000\u0000\u0359\u035a\u0005/\u0000\u0000\u035a\u035b\u0005*\u0000"+
|
||||
"\u0000\u035b\u035f\u0001\u0000\u0000\u0000\u035c\u035e\t\u0000\u0000\u0000"+
|
||||
"\u035d\u035c\u0001\u0000\u0000\u0000\u035e\u0361\u0001\u0000\u0000\u0000"+
|
||||
"\u035f\u0360\u0001\u0000\u0000\u0000\u035f\u035d\u0001\u0000\u0000\u0000"+
|
||||
"\u0360\u0362\u0001\u0000\u0000\u0000\u0361\u035f\u0001\u0000\u0000\u0000"+
|
||||
"\u0362\u0363\u0005*\u0000\u0000\u0363\u0364\u0005/\u0000\u0000\u0364\u0365"+
|
||||
"\u0001\u0000\u0000\u0000\u0365\u0366\u0006m\u0000\u0000\u0366\u00dc\u0001"+
|
||||
"\u0000\u0000\u0000\u0367\u0368\u0005/\u0000\u0000\u0368\u0369\u0005/\u0000"+
|
||||
"\u0000\u0369\u036d\u0001\u0000\u0000\u0000\u036a\u036c\b\u0010\u0000\u0000"+
|
||||
"\u036b\u036a\u0001\u0000\u0000\u0000\u036c\u036f\u0001\u0000\u0000\u0000"+
|
||||
"\u036d\u036b\u0001\u0000\u0000\u0000\u036d\u036e\u0001\u0000\u0000\u0000"+
|
||||
"\u036e\u0370\u0001\u0000\u0000\u0000\u036f\u036d\u0001\u0000\u0000\u0000"+
|
||||
"\u0370\u0371\u0006n\u0000\u0000\u0371\u00de\u0001\u0000\u0000\u0000\u0372"+
|
||||
"\u0376\u0003\u00edv\u0000\u0373\u0375\u0003\u00ebu\u0000\u0374\u0373\u0001"+
|
||||
"\u0000\u0000\u0000\u0375\u0378\u0001\u0000\u0000\u0000\u0376\u0374\u0001"+
|
||||
"\u0000\u0000\u0000\u0376\u0377\u0001\u0000\u0000\u0000\u0377\u00e0\u0001"+
|
||||
"\u0000\u0000\u0000\u0378\u0376\u0001\u0000\u0000\u0000\u0379\u037b\u0007"+
|
||||
"\u0011\u0000\u0000\u037a\u037c\u0007\f\u0000\u0000\u037b\u037a\u0001\u0000"+
|
||||
"\u0000\u0000\u037b\u037c\u0001\u0000\u0000\u0000\u037c\u037d\u0001\u0000"+
|
||||
"\u0000\u0000\u037d\u037e\u0003\u00e9t\u0000\u037e\u00e2\u0001\u0000\u0000"+
|
||||
"\u0000\u037f\u0380\u0005\\\u0000\u0000\u0380\u0395\u0007\u0012\u0000\u0000"+
|
||||
"\u0381\u0386\u0005\\\u0000\u0000\u0382\u0384\u0007\u0013\u0000\u0000\u0383"+
|
||||
"\u0382\u0001\u0000\u0000\u0000\u0383\u0384\u0001\u0000\u0000\u0000\u0384"+
|
||||
"\u0385\u0001\u0000\u0000\u0000\u0385\u0387\u0007\u0005\u0000\u0000\u0386"+
|
||||
"\u0383\u0001\u0000\u0000\u0000\u0386\u0387\u0001\u0000\u0000\u0000\u0387"+
|
||||
"\u0388\u0001\u0000\u0000\u0000\u0388\u0395\u0007\u0005\u0000\u0000\u0389"+
|
||||
"\u038b\u0005\\\u0000\u0000\u038a\u038c\u0005u\u0000\u0000\u038b\u038a"+
|
||||
"\u0001\u0000\u0000\u0000\u038c\u038d\u0001\u0000\u0000\u0000\u038d\u038b"+
|
||||
"\u0001\u0000\u0000\u0000\u038d\u038e\u0001\u0000\u0000\u0000\u038e\u038f"+
|
||||
"\u0001\u0000\u0000\u0000\u038f\u0390\u0003\u00e7s\u0000\u0390\u0391\u0003"+
|
||||
"\u00e7s\u0000\u0391\u0392\u0003\u00e7s\u0000\u0392\u0393\u0003\u00e7s"+
|
||||
"\u0000\u0393\u0395\u0001\u0000\u0000\u0000\u0394\u037f\u0001\u0000\u0000"+
|
||||
"\u0000\u0394\u0381\u0001\u0000\u0000\u0000\u0394\u0389\u0001\u0000\u0000"+
|
||||
"\u0000\u0395\u00e4\u0001\u0000\u0000\u0000\u0396\u039f\u0003\u00e7s\u0000"+
|
||||
"\u0397\u039a\u0003\u00e7s\u0000\u0398\u039a\u0005_\u0000\u0000\u0399\u0397"+
|
||||
"\u0001\u0000\u0000\u0000\u0399\u0398\u0001\u0000\u0000\u0000\u039a\u039d"+
|
||||
"\u0001\u0000\u0000\u0000\u039b\u0399\u0001\u0000\u0000\u0000\u039b\u039c"+
|
||||
"\u0001\u0000\u0000\u0000\u039c\u039e\u0001\u0000\u0000\u0000\u039d\u039b"+
|
||||
"\u0001\u0000\u0000\u0000\u039e\u03a0\u0003\u00e7s\u0000\u039f\u039b\u0001"+
|
||||
"\u0000\u0000\u0000\u039f\u03a0\u0001\u0000\u0000\u0000\u03a0\u00e6\u0001"+
|
||||
"\u0000\u0000\u0000\u03a1\u03a2\u0007\u0003\u0000\u0000\u03a2\u00e8\u0001"+
|
||||
"\u0000\u0000\u0000\u03a3\u03ab\u0007\u0014\u0000\u0000\u03a4\u03a6\u0007"+
|
||||
"\u0015\u0000\u0000\u03a5\u03a4\u0001\u0000\u0000\u0000\u03a6\u03a9\u0001"+
|
||||
"\u0000\u0000\u0000\u03a7\u03a5\u0001\u0000\u0000\u0000\u03a7\u03a8\u0001"+
|
||||
"\u0000\u0000\u0000\u03a8\u03aa\u0001\u0000\u0000\u0000\u03a9\u03a7\u0001"+
|
||||
"\u0000\u0000\u0000\u03aa\u03ac\u0007\u0014\u0000\u0000\u03ab\u03a7\u0001"+
|
||||
"\u0000\u0000\u0000\u03ab\u03ac\u0001\u0000\u0000\u0000\u03ac\u00ea\u0001"+
|
||||
"\u0000\u0000\u0000\u03ad\u03b0\u0003\u00edv\u0000\u03ae\u03b0\u0007\u0014"+
|
||||
"\u0000\u0000\u03af\u03ad\u0001\u0000\u0000\u0000\u03af\u03ae\u0001\u0000"+
|
||||
"\u0000\u0000\u03b0\u00ec\u0001\u0000\u0000\u0000\u03b1\u03b6\u0007\u0016"+
|
||||
"\u0000\u0000\u03b2\u03b6\b\u0017\u0000\u0000\u03b3\u03b4\u0007\u0018\u0000"+
|
||||
"\u0000\u03b4\u03b6\u0007\u0019\u0000\u0000\u03b5\u03b1\u0001\u0000\u0000"+
|
||||
"\u0000\u03b5\u03b2\u0001\u0000\u0000\u0000\u03b5\u03b3\u0001\u0000\u0000"+
|
||||
"\u0000\u03b6\u00ee\u0001\u0000\u0000\u00000\u0000\u0249\u024e\u0251\u0253"+
|
||||
"\u0256\u025e\u0262\u0265\u026b\u0272\u0276\u0279\u0281\u0285\u0288\u028d"+
|
||||
"\u0291\u0294\u0297\u029c\u029f\u02a1\u02a7\u02aa\u02ae\u02b2\u02b6\u02c1"+
|
||||
"\u02c6\u02cd\u02cf\u0355\u035f\u036d\u0376\u037b\u0383\u0386\u038d\u0394"+
|
||||
"\u0399\u039b\u039f\u03a7\u03ab\u03af\u03b5\u0001\u0000\u0001\u0000";
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,211 @@
|
||||
ABSTRACT=1
|
||||
ASSERT=2
|
||||
BOOLEAN=3
|
||||
BREAK=4
|
||||
BYTE=5
|
||||
CASE=6
|
||||
CATCH=7
|
||||
CHAR=8
|
||||
CLASS=9
|
||||
CONST=10
|
||||
CONTINUE=11
|
||||
DEFAULT=12
|
||||
DO=13
|
||||
DOUBLE=14
|
||||
ELSE=15
|
||||
ENUM=16
|
||||
EXTENDS=17
|
||||
FINAL=18
|
||||
FINALLY=19
|
||||
FLOAT=20
|
||||
FOR=21
|
||||
IF=22
|
||||
GOTO=23
|
||||
IMPLEMENTS=24
|
||||
IMPORT=25
|
||||
INSTANCEOF=26
|
||||
INT=27
|
||||
INTERFACE=28
|
||||
LONG=29
|
||||
NATIVE=30
|
||||
NEW=31
|
||||
PACKAGE=32
|
||||
PRIVATE=33
|
||||
PROTECTED=34
|
||||
PUBLIC=35
|
||||
RETURN=36
|
||||
SHORT=37
|
||||
STATIC=38
|
||||
STRICTFP=39
|
||||
SUPER=40
|
||||
SWITCH=41
|
||||
SYNCHRONIZED=42
|
||||
THIS=43
|
||||
THROW=44
|
||||
THROWS=45
|
||||
TRANSIENT=46
|
||||
TRY=47
|
||||
VAR=48
|
||||
VOID=49
|
||||
VOLATILE=50
|
||||
WHILE=51
|
||||
DECIMAL_LITERAL=52
|
||||
HEX_LITERAL=53
|
||||
OCT_LITERAL=54
|
||||
BINARY_LITERAL=55
|
||||
FLOAT_LITERAL=56
|
||||
HEX_FLOAT_LITERAL=57
|
||||
BOOL_LITERAL=58
|
||||
CHAR_LITERAL=59
|
||||
STRING_LITERAL=60
|
||||
NULL_LITERAL=61
|
||||
LPAREN=62
|
||||
RPAREN=63
|
||||
LBRACE=64
|
||||
RBRACE=65
|
||||
LBRACK=66
|
||||
RBRACK=67
|
||||
SEMI=68
|
||||
COMMA=69
|
||||
DOT=70
|
||||
ASSIGN=71
|
||||
GT=72
|
||||
LT=73
|
||||
BANG=74
|
||||
TILDE=75
|
||||
QUESTION=76
|
||||
COLON=77
|
||||
EQUAL=78
|
||||
LE=79
|
||||
GE=80
|
||||
NOTEQUAL=81
|
||||
AND=82
|
||||
OR=83
|
||||
INC=84
|
||||
DEC=85
|
||||
ADD=86
|
||||
SUB=87
|
||||
MUL=88
|
||||
DIV=89
|
||||
BITAND=90
|
||||
BITOR=91
|
||||
CARET=92
|
||||
MOD=93
|
||||
ADD_ASSIGN=94
|
||||
SUB_ASSIGN=95
|
||||
MUL_ASSIGN=96
|
||||
DIV_ASSIGN=97
|
||||
AND_ASSIGN=98
|
||||
OR_ASSIGN=99
|
||||
XOR_ASSIGN=100
|
||||
MOD_ASSIGN=101
|
||||
LSHIFT_ASSIGN=102
|
||||
RSHIFT_ASSIGN=103
|
||||
URSHIFT_ASSIGN=104
|
||||
ARROW=105
|
||||
COLONCOLON=106
|
||||
AT=107
|
||||
ELLIPSIS=108
|
||||
WS=109
|
||||
BLOCK_COMMENT=110
|
||||
LINE_COMMENT=111
|
||||
IDENTIFIER=112
|
||||
'abstract'=1
|
||||
'assert'=2
|
||||
'boolean'=3
|
||||
'break'=4
|
||||
'byte'=5
|
||||
'case'=6
|
||||
'catch'=7
|
||||
'char'=8
|
||||
'class'=9
|
||||
'const'=10
|
||||
'continue'=11
|
||||
'default'=12
|
||||
'do'=13
|
||||
'double'=14
|
||||
'else'=15
|
||||
'enum'=16
|
||||
'extends'=17
|
||||
'final'=18
|
||||
'finally'=19
|
||||
'float'=20
|
||||
'for'=21
|
||||
'if'=22
|
||||
'goto'=23
|
||||
'implements'=24
|
||||
'import'=25
|
||||
'instanceof'=26
|
||||
'int'=27
|
||||
'interface'=28
|
||||
'long'=29
|
||||
'native'=30
|
||||
'new'=31
|
||||
'package'=32
|
||||
'private'=33
|
||||
'protected'=34
|
||||
'public'=35
|
||||
'return'=36
|
||||
'short'=37
|
||||
'static'=38
|
||||
'strictfp'=39
|
||||
'super'=40
|
||||
'switch'=41
|
||||
'synchronized'=42
|
||||
'this'=43
|
||||
'throw'=44
|
||||
'throws'=45
|
||||
'transient'=46
|
||||
'try'=47
|
||||
'var'=48
|
||||
'void'=49
|
||||
'volatile'=50
|
||||
'while'=51
|
||||
'null'=61
|
||||
'('=62
|
||||
')'=63
|
||||
'{'=64
|
||||
'}'=65
|
||||
'['=66
|
||||
']'=67
|
||||
';'=68
|
||||
','=69
|
||||
'.'=70
|
||||
'='=71
|
||||
'>'=72
|
||||
'<'=73
|
||||
'!'=74
|
||||
'~'=75
|
||||
'?'=76
|
||||
':'=77
|
||||
'=='=78
|
||||
'<='=79
|
||||
'>='=80
|
||||
'!='=81
|
||||
'&&'=82
|
||||
'||'=83
|
||||
'++'=84
|
||||
'--'=85
|
||||
'+'=86
|
||||
'-'=87
|
||||
'*'=88
|
||||
'/'=89
|
||||
'&'=90
|
||||
'|'=91
|
||||
'^'=92
|
||||
'%'=93
|
||||
'+='=94
|
||||
'-='=95
|
||||
'*='=96
|
||||
'/='=97
|
||||
'&='=98
|
||||
'|='=99
|
||||
'^='=100
|
||||
'%='=101
|
||||
'<<='=102
|
||||
'>>='=103
|
||||
'>>>='=104
|
||||
'->'=105
|
||||
'::'=106
|
||||
'@'=107
|
||||
'...'=108
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,211 @@
|
||||
ABSTRACT=1
|
||||
ASSERT=2
|
||||
BOOLEAN=3
|
||||
BREAK=4
|
||||
BYTE=5
|
||||
CASE=6
|
||||
CATCH=7
|
||||
CHAR=8
|
||||
CLASS=9
|
||||
CONST=10
|
||||
CONTINUE=11
|
||||
DEFAULT=12
|
||||
DO=13
|
||||
DOUBLE=14
|
||||
ELSE=15
|
||||
ENUM=16
|
||||
EXTENDS=17
|
||||
FINAL=18
|
||||
FINALLY=19
|
||||
FLOAT=20
|
||||
FOR=21
|
||||
IF=22
|
||||
GOTO=23
|
||||
IMPLEMENTS=24
|
||||
IMPORT=25
|
||||
INSTANCEOF=26
|
||||
INT=27
|
||||
INTERFACE=28
|
||||
LONG=29
|
||||
NATIVE=30
|
||||
NEW=31
|
||||
PACKAGE=32
|
||||
PRIVATE=33
|
||||
PROTECTED=34
|
||||
PUBLIC=35
|
||||
RETURN=36
|
||||
SHORT=37
|
||||
STATIC=38
|
||||
STRICTFP=39
|
||||
SUPER=40
|
||||
SWITCH=41
|
||||
SYNCHRONIZED=42
|
||||
THIS=43
|
||||
THROW=44
|
||||
THROWS=45
|
||||
TRANSIENT=46
|
||||
TRY=47
|
||||
VAR=48
|
||||
VOID=49
|
||||
VOLATILE=50
|
||||
WHILE=51
|
||||
DECIMAL_LITERAL=52
|
||||
HEX_LITERAL=53
|
||||
OCT_LITERAL=54
|
||||
BINARY_LITERAL=55
|
||||
FLOAT_LITERAL=56
|
||||
HEX_FLOAT_LITERAL=57
|
||||
BOOL_LITERAL=58
|
||||
CHAR_LITERAL=59
|
||||
STRING_LITERAL=60
|
||||
NULL_LITERAL=61
|
||||
LPAREN=62
|
||||
RPAREN=63
|
||||
LBRACE=64
|
||||
RBRACE=65
|
||||
LBRACK=66
|
||||
RBRACK=67
|
||||
SEMI=68
|
||||
COMMA=69
|
||||
DOT=70
|
||||
ASSIGN=71
|
||||
GT=72
|
||||
LT=73
|
||||
BANG=74
|
||||
TILDE=75
|
||||
QUESTION=76
|
||||
COLON=77
|
||||
EQUAL=78
|
||||
LE=79
|
||||
GE=80
|
||||
NOTEQUAL=81
|
||||
AND=82
|
||||
OR=83
|
||||
INC=84
|
||||
DEC=85
|
||||
ADD=86
|
||||
SUB=87
|
||||
MUL=88
|
||||
DIV=89
|
||||
BITAND=90
|
||||
BITOR=91
|
||||
CARET=92
|
||||
MOD=93
|
||||
ADD_ASSIGN=94
|
||||
SUB_ASSIGN=95
|
||||
MUL_ASSIGN=96
|
||||
DIV_ASSIGN=97
|
||||
AND_ASSIGN=98
|
||||
OR_ASSIGN=99
|
||||
XOR_ASSIGN=100
|
||||
MOD_ASSIGN=101
|
||||
LSHIFT_ASSIGN=102
|
||||
RSHIFT_ASSIGN=103
|
||||
URSHIFT_ASSIGN=104
|
||||
ARROW=105
|
||||
COLONCOLON=106
|
||||
AT=107
|
||||
ELLIPSIS=108
|
||||
WS=109
|
||||
BLOCK_COMMENT=110
|
||||
LINE_COMMENT=111
|
||||
IDENTIFIER=112
|
||||
'abstract'=1
|
||||
'assert'=2
|
||||
'boolean'=3
|
||||
'break'=4
|
||||
'byte'=5
|
||||
'case'=6
|
||||
'catch'=7
|
||||
'char'=8
|
||||
'class'=9
|
||||
'const'=10
|
||||
'continue'=11
|
||||
'default'=12
|
||||
'do'=13
|
||||
'double'=14
|
||||
'else'=15
|
||||
'enum'=16
|
||||
'extends'=17
|
||||
'final'=18
|
||||
'finally'=19
|
||||
'float'=20
|
||||
'for'=21
|
||||
'if'=22
|
||||
'goto'=23
|
||||
'implements'=24
|
||||
'import'=25
|
||||
'instanceof'=26
|
||||
'int'=27
|
||||
'interface'=28
|
||||
'long'=29
|
||||
'native'=30
|
||||
'new'=31
|
||||
'package'=32
|
||||
'private'=33
|
||||
'protected'=34
|
||||
'public'=35
|
||||
'return'=36
|
||||
'short'=37
|
||||
'static'=38
|
||||
'strictfp'=39
|
||||
'super'=40
|
||||
'switch'=41
|
||||
'synchronized'=42
|
||||
'this'=43
|
||||
'throw'=44
|
||||
'throws'=45
|
||||
'transient'=46
|
||||
'try'=47
|
||||
'var'=48
|
||||
'void'=49
|
||||
'volatile'=50
|
||||
'while'=51
|
||||
'null'=61
|
||||
'('=62
|
||||
')'=63
|
||||
'{'=64
|
||||
'}'=65
|
||||
'['=66
|
||||
']'=67
|
||||
';'=68
|
||||
','=69
|
||||
'.'=70
|
||||
'='=71
|
||||
'>'=72
|
||||
'<'=73
|
||||
'!'=74
|
||||
'~'=75
|
||||
'?'=76
|
||||
':'=77
|
||||
'=='=78
|
||||
'<='=79
|
||||
'>='=80
|
||||
'!='=81
|
||||
'&&'=82
|
||||
'||'=83
|
||||
'++'=84
|
||||
'--'=85
|
||||
'+'=86
|
||||
'-'=87
|
||||
'*'=88
|
||||
'/'=89
|
||||
'&'=90
|
||||
'|'=91
|
||||
'^'=92
|
||||
'%'=93
|
||||
'+='=94
|
||||
'-='=95
|
||||
'*='=96
|
||||
'/='=97
|
||||
'&='=98
|
||||
'|='=99
|
||||
'^='=100
|
||||
'%='=101
|
||||
'<<='=102
|
||||
'>>='=103
|
||||
'>>>='=104
|
||||
'->'=105
|
||||
'::'=106
|
||||
'@'=107
|
||||
'...'=108
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,749 @@
|
||||
// Generated from /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/java/JavaParser.g4 by ANTLR 4.10.1
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
||||
|
||||
/**
|
||||
* This class provides an empty implementation of {@link JavaParserVisitor},
|
||||
* 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.
|
||||
*/
|
||||
public class JavaParserBaseVisitor<T> extends AbstractParseTreeVisitor<T> implements JavaParserVisitor<T> {
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitCompilationUnit(JavaParser.CompilationUnitContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitPackageDeclaration(JavaParser.PackageDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitImportDeclaration(JavaParser.ImportDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeDeclaration(JavaParser.TypeDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitModifier(JavaParser.ModifierContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassOrInterfaceModifier(JavaParser.ClassOrInterfaceModifierContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitVariableModifier(JavaParser.VariableModifierContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassDeclaration(JavaParser.ClassDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeParameters(JavaParser.TypeParametersContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeParameter(JavaParser.TypeParameterContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeBound(JavaParser.TypeBoundContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitEnumDeclaration(JavaParser.EnumDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitEnumConstants(JavaParser.EnumConstantsContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitEnumConstant(JavaParser.EnumConstantContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitEnumBodyDeclarations(JavaParser.EnumBodyDeclarationsContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInterfaceDeclaration(JavaParser.InterfaceDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassBody(JavaParser.ClassBodyContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInterfaceBody(JavaParser.InterfaceBodyContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassBodyDeclaration(JavaParser.ClassBodyDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitMemberDeclaration(JavaParser.MemberDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitMethodDeclaration(JavaParser.MethodDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitMethodBody(JavaParser.MethodBodyContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeTypeOrVoid(JavaParser.TypeTypeOrVoidContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitGenericMethodDeclaration(JavaParser.GenericMethodDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitGenericConstructorDeclaration(JavaParser.GenericConstructorDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitConstructorDeclaration(JavaParser.ConstructorDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFieldDeclaration(JavaParser.FieldDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInterfaceBodyDeclaration(JavaParser.InterfaceBodyDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInterfaceMemberDeclaration(JavaParser.InterfaceMemberDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitConstDeclaration(JavaParser.ConstDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitConstantDeclarator(JavaParser.ConstantDeclaratorContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInterfaceMethodDeclaration(JavaParser.InterfaceMethodDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInterfaceMethodModifier(JavaParser.InterfaceMethodModifierContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitGenericInterfaceMethodDeclaration(JavaParser.GenericInterfaceMethodDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitVariableDeclarators(JavaParser.VariableDeclaratorsContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitVariableDeclarator(JavaParser.VariableDeclaratorContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitVariableDeclaratorId(JavaParser.VariableDeclaratorIdContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitVariableInitializer(JavaParser.VariableInitializerContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitArrayInitializer(JavaParser.ArrayInitializerContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassOrInterfaceType(JavaParser.ClassOrInterfaceTypeContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeArgument(JavaParser.TypeArgumentContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitQualifiedNameList(JavaParser.QualifiedNameListContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFormalParameters(JavaParser.FormalParametersContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFormalParameterList(JavaParser.FormalParameterListContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFormalParameter(JavaParser.FormalParameterContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLastFormalParameter(JavaParser.LastFormalParameterContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitQualifiedName(JavaParser.QualifiedNameContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLiteral(JavaParser.LiteralContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitIntegerLiteral(JavaParser.IntegerLiteralContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFloatLiteral(JavaParser.FloatLiteralContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAltAnnotationQualifiedName(JavaParser.AltAnnotationQualifiedNameContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotation(JavaParser.AnnotationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitElementValuePairs(JavaParser.ElementValuePairsContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitElementValuePair(JavaParser.ElementValuePairContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitElementValue(JavaParser.ElementValueContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitElementValueArrayInitializer(JavaParser.ElementValueArrayInitializerContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationTypeDeclaration(JavaParser.AnnotationTypeDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationTypeBody(JavaParser.AnnotationTypeBodyContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationTypeElementDeclaration(JavaParser.AnnotationTypeElementDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationTypeElementRest(JavaParser.AnnotationTypeElementRestContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationMethodOrConstantRest(JavaParser.AnnotationMethodOrConstantRestContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationMethodRest(JavaParser.AnnotationMethodRestContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitAnnotationConstantRest(JavaParser.AnnotationConstantRestContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitDefaultValue(JavaParser.DefaultValueContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitBlock(JavaParser.BlockContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitBlockStatement(JavaParser.BlockStatementContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLocalVariableDeclaration(JavaParser.LocalVariableDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLocalTypeDeclaration(JavaParser.LocalTypeDeclarationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitStatement(JavaParser.StatementContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitCatchClause(JavaParser.CatchClauseContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitCatchType(JavaParser.CatchTypeContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitFinallyBlock(JavaParser.FinallyBlockContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitResourceSpecification(JavaParser.ResourceSpecificationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitResources(JavaParser.ResourcesContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitResource(JavaParser.ResourceContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitSwitchBlockStatementGroup(JavaParser.SwitchBlockStatementGroupContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitSwitchLabel(JavaParser.SwitchLabelContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitForControl(JavaParser.ForControlContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitForInit(JavaParser.ForInitContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitEnhancedForControl(JavaParser.EnhancedForControlContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitParExpression(JavaParser.ParExpressionContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitExpressionList(JavaParser.ExpressionListContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitMethodCall(JavaParser.MethodCallContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitExpression(JavaParser.ExpressionContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLambdaExpression(JavaParser.LambdaExpressionContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLambdaParameters(JavaParser.LambdaParametersContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitLambdaBody(JavaParser.LambdaBodyContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitPrimary(JavaParser.PrimaryContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassType(JavaParser.ClassTypeContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitCreator(JavaParser.CreatorContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitCreatedName(JavaParser.CreatedNameContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitInnerCreator(JavaParser.InnerCreatorContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitArrayCreatorRest(JavaParser.ArrayCreatorRestContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitClassCreatorRest(JavaParser.ClassCreatorRestContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitExplicitGenericInvocation(JavaParser.ExplicitGenericInvocationContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeArgumentsOrDiamond(JavaParser.TypeArgumentsOrDiamondContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitNonWildcardTypeArgumentsOrDiamond(JavaParser.NonWildcardTypeArgumentsOrDiamondContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitNonWildcardTypeArguments(JavaParser.NonWildcardTypeArgumentsContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeList(JavaParser.TypeListContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeType(JavaParser.TypeTypeContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitPrimitiveType(JavaParser.PrimitiveTypeContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitTypeArguments(JavaParser.TypeArgumentsContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitSuperSuffix(JavaParser.SuperSuffixContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitExplicitGenericInvocationSuffix(JavaParser.ExplicitGenericInvocationSuffixContext ctx) { return visitChildren(ctx); }
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling
|
||||
* {@link #visitChildren} on {@code ctx}.</p>
|
||||
*/
|
||||
@Override public T visitArguments(JavaParser.ArgumentsContext ctx) { return visitChildren(ctx); }
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,643 @@
|
||||
// Generated from /home/itsaky/Projects/Android/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/java/JavaParser.g4 by ANTLR 4.10.1
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
|
||||
|
||||
/**
|
||||
* This interface defines a complete generic visitor for a parse tree produced
|
||||
* by {@link JavaParser}.
|
||||
*
|
||||
* @param <T> The return type of the visit operation. Use {@link Void} for
|
||||
* operations with no return type.
|
||||
*/
|
||||
public interface JavaParserVisitor<T> extends ParseTreeVisitor<T> {
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#compilationUnit}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitCompilationUnit(JavaParser.CompilationUnitContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#packageDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitPackageDeclaration(JavaParser.PackageDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#importDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitImportDeclaration(JavaParser.ImportDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeDeclaration(JavaParser.TypeDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#modifier}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitModifier(JavaParser.ModifierContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classOrInterfaceModifier}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassOrInterfaceModifier(JavaParser.ClassOrInterfaceModifierContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#variableModifier}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitVariableModifier(JavaParser.VariableModifierContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassDeclaration(JavaParser.ClassDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeParameters}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeParameters(JavaParser.TypeParametersContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeParameter}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeParameter(JavaParser.TypeParameterContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeBound}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeBound(JavaParser.TypeBoundContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#enumDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitEnumDeclaration(JavaParser.EnumDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#enumConstants}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitEnumConstants(JavaParser.EnumConstantsContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#enumConstant}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitEnumConstant(JavaParser.EnumConstantContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#enumBodyDeclarations}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitEnumBodyDeclarations(JavaParser.EnumBodyDeclarationsContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#interfaceDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInterfaceDeclaration(JavaParser.InterfaceDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classBody}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassBody(JavaParser.ClassBodyContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#interfaceBody}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInterfaceBody(JavaParser.InterfaceBodyContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classBodyDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassBodyDeclaration(JavaParser.ClassBodyDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#memberDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitMemberDeclaration(JavaParser.MemberDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#methodDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitMethodDeclaration(JavaParser.MethodDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#methodBody}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitMethodBody(JavaParser.MethodBodyContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeTypeOrVoid}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeTypeOrVoid(JavaParser.TypeTypeOrVoidContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#genericMethodDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitGenericMethodDeclaration(JavaParser.GenericMethodDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#genericConstructorDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitGenericConstructorDeclaration(JavaParser.GenericConstructorDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#constructorDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitConstructorDeclaration(JavaParser.ConstructorDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#fieldDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFieldDeclaration(JavaParser.FieldDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#interfaceBodyDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInterfaceBodyDeclaration(JavaParser.InterfaceBodyDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#interfaceMemberDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInterfaceMemberDeclaration(JavaParser.InterfaceMemberDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#constDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitConstDeclaration(JavaParser.ConstDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#constantDeclarator}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitConstantDeclarator(JavaParser.ConstantDeclaratorContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#interfaceMethodDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInterfaceMethodDeclaration(JavaParser.InterfaceMethodDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#interfaceMethodModifier}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInterfaceMethodModifier(JavaParser.InterfaceMethodModifierContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#genericInterfaceMethodDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitGenericInterfaceMethodDeclaration(JavaParser.GenericInterfaceMethodDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#variableDeclarators}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitVariableDeclarators(JavaParser.VariableDeclaratorsContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#variableDeclarator}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitVariableDeclarator(JavaParser.VariableDeclaratorContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#variableDeclaratorId}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitVariableDeclaratorId(JavaParser.VariableDeclaratorIdContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#variableInitializer}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitVariableInitializer(JavaParser.VariableInitializerContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#arrayInitializer}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitArrayInitializer(JavaParser.ArrayInitializerContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classOrInterfaceType}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassOrInterfaceType(JavaParser.ClassOrInterfaceTypeContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeArgument}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeArgument(JavaParser.TypeArgumentContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#qualifiedNameList}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitQualifiedNameList(JavaParser.QualifiedNameListContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#formalParameters}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFormalParameters(JavaParser.FormalParametersContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#formalParameterList}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFormalParameterList(JavaParser.FormalParameterListContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#formalParameter}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFormalParameter(JavaParser.FormalParameterContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#lastFormalParameter}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLastFormalParameter(JavaParser.LastFormalParameterContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#qualifiedName}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitQualifiedName(JavaParser.QualifiedNameContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#literal}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLiteral(JavaParser.LiteralContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#integerLiteral}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitIntegerLiteral(JavaParser.IntegerLiteralContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#floatLiteral}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFloatLiteral(JavaParser.FloatLiteralContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#altAnnotationQualifiedName}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAltAnnotationQualifiedName(JavaParser.AltAnnotationQualifiedNameContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotation}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotation(JavaParser.AnnotationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#elementValuePairs}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitElementValuePairs(JavaParser.ElementValuePairsContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#elementValuePair}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitElementValuePair(JavaParser.ElementValuePairContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#elementValue}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitElementValue(JavaParser.ElementValueContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#elementValueArrayInitializer}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitElementValueArrayInitializer(JavaParser.ElementValueArrayInitializerContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationTypeDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationTypeDeclaration(JavaParser.AnnotationTypeDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationTypeBody}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationTypeBody(JavaParser.AnnotationTypeBodyContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationTypeElementDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationTypeElementDeclaration(JavaParser.AnnotationTypeElementDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationTypeElementRest}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationTypeElementRest(JavaParser.AnnotationTypeElementRestContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationMethodOrConstantRest}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationMethodOrConstantRest(JavaParser.AnnotationMethodOrConstantRestContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationMethodRest}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationMethodRest(JavaParser.AnnotationMethodRestContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#annotationConstantRest}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitAnnotationConstantRest(JavaParser.AnnotationConstantRestContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#defaultValue}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitDefaultValue(JavaParser.DefaultValueContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#block}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitBlock(JavaParser.BlockContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#blockStatement}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitBlockStatement(JavaParser.BlockStatementContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#localVariableDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLocalVariableDeclaration(JavaParser.LocalVariableDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#localTypeDeclaration}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLocalTypeDeclaration(JavaParser.LocalTypeDeclarationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#statement}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitStatement(JavaParser.StatementContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#catchClause}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitCatchClause(JavaParser.CatchClauseContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#catchType}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitCatchType(JavaParser.CatchTypeContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#finallyBlock}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitFinallyBlock(JavaParser.FinallyBlockContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#resourceSpecification}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitResourceSpecification(JavaParser.ResourceSpecificationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#resources}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitResources(JavaParser.ResourcesContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#resource}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitResource(JavaParser.ResourceContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#switchBlockStatementGroup}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitSwitchBlockStatementGroup(JavaParser.SwitchBlockStatementGroupContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#switchLabel}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitSwitchLabel(JavaParser.SwitchLabelContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#forControl}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitForControl(JavaParser.ForControlContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#forInit}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitForInit(JavaParser.ForInitContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#enhancedForControl}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitEnhancedForControl(JavaParser.EnhancedForControlContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#parExpression}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitParExpression(JavaParser.ParExpressionContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#expressionList}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitExpressionList(JavaParser.ExpressionListContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#methodCall}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitMethodCall(JavaParser.MethodCallContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#expression}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitExpression(JavaParser.ExpressionContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#lambdaExpression}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLambdaExpression(JavaParser.LambdaExpressionContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#lambdaParameters}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLambdaParameters(JavaParser.LambdaParametersContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#lambdaBody}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitLambdaBody(JavaParser.LambdaBodyContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#primary}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitPrimary(JavaParser.PrimaryContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classType}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassType(JavaParser.ClassTypeContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#creator}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitCreator(JavaParser.CreatorContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#createdName}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitCreatedName(JavaParser.CreatedNameContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#innerCreator}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitInnerCreator(JavaParser.InnerCreatorContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#arrayCreatorRest}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitArrayCreatorRest(JavaParser.ArrayCreatorRestContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#classCreatorRest}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitClassCreatorRest(JavaParser.ClassCreatorRestContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#explicitGenericInvocation}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitExplicitGenericInvocation(JavaParser.ExplicitGenericInvocationContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeArgumentsOrDiamond}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeArgumentsOrDiamond(JavaParser.TypeArgumentsOrDiamondContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#nonWildcardTypeArgumentsOrDiamond}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitNonWildcardTypeArgumentsOrDiamond(JavaParser.NonWildcardTypeArgumentsOrDiamondContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#nonWildcardTypeArguments}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitNonWildcardTypeArguments(JavaParser.NonWildcardTypeArgumentsContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeList}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeList(JavaParser.TypeListContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeType}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeType(JavaParser.TypeTypeContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#primitiveType}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitPrimitiveType(JavaParser.PrimitiveTypeContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#typeArguments}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitTypeArguments(JavaParser.TypeArgumentsContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#superSuffix}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitSuperSuffix(JavaParser.SuperSuffixContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#explicitGenericInvocationSuffix}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitExplicitGenericInvocationSuffix(JavaParser.ExplicitGenericInvocationSuffixContext ctx);
|
||||
/**
|
||||
* Visit a parse tree produced by {@link JavaParser#arguments}.
|
||||
* @param ctx the parse tree
|
||||
* @return the visitor result
|
||||
*/
|
||||
T visitArguments(JavaParser.ArgumentsContext ctx);
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
File diff suppressed because one or more lines are too long
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
@@ -0,0 +1,12 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -eu
|
||||
|
||||
# Usage:
|
||||
# find * -type d -exec ./gen.sh {} \;
|
||||
|
||||
cd $1
|
||||
dir_name=$(basename $(pwd))
|
||||
echo "Generating lexer and parser for $dir_name..."
|
||||
antlr4 -o . -lib . -listener -visitor -package com.itsaky.androidide.lexers.$dir_name *.g4
|
||||
cd - >/dev/null 2>&1
|
||||
File diff suppressed because one or more lines are too long
@@ -1,27 +1,7 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from GroovyLexer.g4 by ANTLR 4.9.2
|
||||
// Generated from GroovyLexer.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.groovy;
|
||||
|
||||
import org.antlr.v4.runtime.CharStream;
|
||||
import org.antlr.v4.runtime.CharStreams;
|
||||
import org.antlr.v4.runtime.Lexer;
|
||||
import org.antlr.v4.runtime.RuntimeMetaData;
|
||||
import org.antlr.v4.runtime.Vocabulary;
|
||||
@@ -32,17 +12,8 @@ import org.antlr.v4.runtime.atn.LexerATNSimulator;
|
||||
import org.antlr.v4.runtime.atn.PredictionContextCache;
|
||||
import org.antlr.v4.runtime.dfa.DFA;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.StringReader;
|
||||
|
||||
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
|
||||
public class GroovyLexer extends Lexer {
|
||||
static {
|
||||
RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION);
|
||||
}
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
|
||||
public static final int ABSTRACT = 1,
|
||||
ASSERT = 2,
|
||||
BOOLEAN = 3,
|
||||
@@ -155,442 +126,11 @@ public class GroovyLexer extends Lexer {
|
||||
COMMENT = 110,
|
||||
LINE_COMMENT = 111,
|
||||
IDENTIFIER = 112;
|
||||
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
|
||||
|
||||
public static String[] modeNames = {"DEFAULT_MODE"};
|
||||
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"SINGLE_QUOTE_STRING",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER",
|
||||
"ExponentPart",
|
||||
"EscapeSequence",
|
||||
"HexDigits",
|
||||
"HexDigit",
|
||||
"Digits",
|
||||
"LetterOrDigit",
|
||||
"Letter"
|
||||
};
|
||||
}
|
||||
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null,
|
||||
"'abstract'",
|
||||
"'assert'",
|
||||
"'boolean'",
|
||||
"'break'",
|
||||
"'byte'",
|
||||
"'case'",
|
||||
"'catch'",
|
||||
"'char'",
|
||||
"'class'",
|
||||
"'const'",
|
||||
"'continue'",
|
||||
"'default'",
|
||||
"'do'",
|
||||
"'double'",
|
||||
"'else'",
|
||||
"'enum'",
|
||||
"'extends'",
|
||||
"'final'",
|
||||
"'finally'",
|
||||
"'float'",
|
||||
"'for'",
|
||||
"'if'",
|
||||
"'goto'",
|
||||
"'implements'",
|
||||
"'import'",
|
||||
"'instanceof'",
|
||||
"'int'",
|
||||
"'interface'",
|
||||
"'long'",
|
||||
"'native'",
|
||||
"'new'",
|
||||
"'package'",
|
||||
"'private'",
|
||||
"'protected'",
|
||||
"'public'",
|
||||
"'return'",
|
||||
"'short'",
|
||||
"'static'",
|
||||
"'strictfp'",
|
||||
"'super'",
|
||||
"'switch'",
|
||||
"'synchronized'",
|
||||
"'this'",
|
||||
"'throw'",
|
||||
"'throws'",
|
||||
"'transient'",
|
||||
"'try'",
|
||||
"'void'",
|
||||
"'volatile'",
|
||||
"'while'",
|
||||
null,
|
||||
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,
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"SINGLE_QUOTE_STRING",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER"
|
||||
};
|
||||
}
|
||||
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
public GroovyLexer(String input) throws IOException {
|
||||
this(CharStreams.fromReader(new StringReader(input)));
|
||||
}
|
||||
|
||||
public GroovyLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "GroovyLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@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\2r\u03bf\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"
|
||||
@@ -929,6 +469,31 @@ public class GroovyLexer extends Lexer {
|
||||
+ "\u02cb\u02cd\u02d5\u02d7\u035d\u0367\u0375\u037e\u0383\u038b\u038e\u0395"
|
||||
+ "\u039c\u03a1\u03a3\u03a7\u03af\u03b3\u03b7\u03bd\3\2\3\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 {
|
||||
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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
|
||||
@@ -936,4 +501,406 @@ public class GroovyLexer extends Lexer {
|
||||
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
|
||||
}
|
||||
}
|
||||
|
||||
public GroovyLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"SINGLE_QUOTE_STRING",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER",
|
||||
"ExponentPart",
|
||||
"EscapeSequence",
|
||||
"HexDigits",
|
||||
"HexDigit",
|
||||
"Digits",
|
||||
"LetterOrDigit",
|
||||
"Letter"
|
||||
};
|
||||
}
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null,
|
||||
"'abstract'",
|
||||
"'assert'",
|
||||
"'boolean'",
|
||||
"'break'",
|
||||
"'byte'",
|
||||
"'case'",
|
||||
"'catch'",
|
||||
"'char'",
|
||||
"'class'",
|
||||
"'const'",
|
||||
"'continue'",
|
||||
"'default'",
|
||||
"'do'",
|
||||
"'double'",
|
||||
"'else'",
|
||||
"'enum'",
|
||||
"'extends'",
|
||||
"'final'",
|
||||
"'finally'",
|
||||
"'float'",
|
||||
"'for'",
|
||||
"'if'",
|
||||
"'goto'",
|
||||
"'implements'",
|
||||
"'import'",
|
||||
"'instanceof'",
|
||||
"'int'",
|
||||
"'interface'",
|
||||
"'long'",
|
||||
"'native'",
|
||||
"'new'",
|
||||
"'package'",
|
||||
"'private'",
|
||||
"'protected'",
|
||||
"'public'",
|
||||
"'return'",
|
||||
"'short'",
|
||||
"'static'",
|
||||
"'strictfp'",
|
||||
"'super'",
|
||||
"'switch'",
|
||||
"'synchronized'",
|
||||
"'this'",
|
||||
"'throw'",
|
||||
"'throws'",
|
||||
"'transient'",
|
||||
"'try'",
|
||||
"'void'",
|
||||
"'volatile'",
|
||||
"'while'",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"'null'",
|
||||
"'('",
|
||||
"')'",
|
||||
"'{'",
|
||||
"'}'",
|
||||
"'['",
|
||||
"']'",
|
||||
"';'",
|
||||
"','",
|
||||
"'.'",
|
||||
"'='",
|
||||
"'>'",
|
||||
"'<'",
|
||||
"'!'",
|
||||
"'~'",
|
||||
"'?'",
|
||||
"':'",
|
||||
"'=='",
|
||||
"'<='",
|
||||
"'>='",
|
||||
"'!='",
|
||||
"'&&'",
|
||||
"'||'",
|
||||
"'++'",
|
||||
"'--'",
|
||||
"'+'",
|
||||
"'-'",
|
||||
"'*'",
|
||||
"'/'",
|
||||
"'&'",
|
||||
"'|'",
|
||||
"'^'",
|
||||
"'%'",
|
||||
"'+='",
|
||||
"'-='",
|
||||
"'*='",
|
||||
"'/='",
|
||||
"'&='",
|
||||
"'|='",
|
||||
"'^='",
|
||||
"'%='",
|
||||
"'<<='",
|
||||
"'>>='",
|
||||
"'>>>='",
|
||||
"'->'",
|
||||
"'::'",
|
||||
"'@'",
|
||||
"'...'"
|
||||
};
|
||||
}
|
||||
|
||||
private static String[] makeSymbolicNames() {
|
||||
return new String[] {
|
||||
null,
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"SINGLE_QUOTE_STRING",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "GroovyLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ATN getATN() {
|
||||
return _ATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getModeNames() {
|
||||
return modeNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,210 @@
|
||||
ABSTRACT=1
|
||||
ASSERT=2
|
||||
BOOLEAN=3
|
||||
BREAK=4
|
||||
BYTE=5
|
||||
CASE=6
|
||||
CATCH=7
|
||||
CHAR=8
|
||||
CLASS=9
|
||||
CONST=10
|
||||
CONTINUE=11
|
||||
DEFAULT=12
|
||||
DO=13
|
||||
DOUBLE=14
|
||||
ELSE=15
|
||||
ENUM=16
|
||||
EXTENDS=17
|
||||
FINAL=18
|
||||
FINALLY=19
|
||||
FLOAT=20
|
||||
FOR=21
|
||||
IF=22
|
||||
GOTO=23
|
||||
IMPLEMENTS=24
|
||||
IMPORT=25
|
||||
INSTANCEOF=26
|
||||
INT=27
|
||||
INTERFACE=28
|
||||
LONG=29
|
||||
NATIVE=30
|
||||
NEW=31
|
||||
PACKAGE=32
|
||||
PRIVATE=33
|
||||
PROTECTED=34
|
||||
PUBLIC=35
|
||||
RETURN=36
|
||||
SHORT=37
|
||||
STATIC=38
|
||||
STRICTFP=39
|
||||
SUPER=40
|
||||
SWITCH=41
|
||||
SYNCHRONIZED=42
|
||||
THIS=43
|
||||
THROW=44
|
||||
THROWS=45
|
||||
TRANSIENT=46
|
||||
TRY=47
|
||||
VOID=48
|
||||
VOLATILE=49
|
||||
WHILE=50
|
||||
DECIMAL_LITERAL=51
|
||||
HEX_LITERAL=52
|
||||
OCT_LITERAL=53
|
||||
BINARY_LITERAL=54
|
||||
FLOAT_LITERAL=55
|
||||
HEX_FLOAT_LITERAL=56
|
||||
BOOL_LITERAL=57
|
||||
CHAR_LITERAL=58
|
||||
SINGLE_QUOTE_STRING=59
|
||||
STRING_LITERAL=60
|
||||
NULL_LITERAL=61
|
||||
LPAREN=62
|
||||
RPAREN=63
|
||||
LBRACE=64
|
||||
RBRACE=65
|
||||
LBRACK=66
|
||||
RBRACK=67
|
||||
SEMI=68
|
||||
COMMA=69
|
||||
DOT=70
|
||||
ASSIGN=71
|
||||
GT=72
|
||||
LT=73
|
||||
BANG=74
|
||||
TILDE=75
|
||||
QUESTION=76
|
||||
COLON=77
|
||||
EQUAL=78
|
||||
LE=79
|
||||
GE=80
|
||||
NOTEQUAL=81
|
||||
AND=82
|
||||
OR=83
|
||||
INC=84
|
||||
DEC=85
|
||||
ADD=86
|
||||
SUB=87
|
||||
MUL=88
|
||||
DIV=89
|
||||
BITAND=90
|
||||
BITOR=91
|
||||
CARET=92
|
||||
MOD=93
|
||||
ADD_ASSIGN=94
|
||||
SUB_ASSIGN=95
|
||||
MUL_ASSIGN=96
|
||||
DIV_ASSIGN=97
|
||||
AND_ASSIGN=98
|
||||
OR_ASSIGN=99
|
||||
XOR_ASSIGN=100
|
||||
MOD_ASSIGN=101
|
||||
LSHIFT_ASSIGN=102
|
||||
RSHIFT_ASSIGN=103
|
||||
URSHIFT_ASSIGN=104
|
||||
ARROW=105
|
||||
COLONCOLON=106
|
||||
AT=107
|
||||
ELLIPSIS=108
|
||||
WS=109
|
||||
COMMENT=110
|
||||
LINE_COMMENT=111
|
||||
IDENTIFIER=112
|
||||
'abstract'=1
|
||||
'assert'=2
|
||||
'boolean'=3
|
||||
'break'=4
|
||||
'byte'=5
|
||||
'case'=6
|
||||
'catch'=7
|
||||
'char'=8
|
||||
'class'=9
|
||||
'const'=10
|
||||
'continue'=11
|
||||
'default'=12
|
||||
'do'=13
|
||||
'double'=14
|
||||
'else'=15
|
||||
'enum'=16
|
||||
'extends'=17
|
||||
'final'=18
|
||||
'finally'=19
|
||||
'float'=20
|
||||
'for'=21
|
||||
'if'=22
|
||||
'goto'=23
|
||||
'implements'=24
|
||||
'import'=25
|
||||
'instanceof'=26
|
||||
'int'=27
|
||||
'interface'=28
|
||||
'long'=29
|
||||
'native'=30
|
||||
'new'=31
|
||||
'package'=32
|
||||
'private'=33
|
||||
'protected'=34
|
||||
'public'=35
|
||||
'return'=36
|
||||
'short'=37
|
||||
'static'=38
|
||||
'strictfp'=39
|
||||
'super'=40
|
||||
'switch'=41
|
||||
'synchronized'=42
|
||||
'this'=43
|
||||
'throw'=44
|
||||
'throws'=45
|
||||
'transient'=46
|
||||
'try'=47
|
||||
'void'=48
|
||||
'volatile'=49
|
||||
'while'=50
|
||||
'null'=61
|
||||
'('=62
|
||||
')'=63
|
||||
'{'=64
|
||||
'}'=65
|
||||
'['=66
|
||||
']'=67
|
||||
';'=68
|
||||
','=69
|
||||
'.'=70
|
||||
'='=71
|
||||
'>'=72
|
||||
'<'=73
|
||||
'!'=74
|
||||
'~'=75
|
||||
'?'=76
|
||||
':'=77
|
||||
'=='=78
|
||||
'<='=79
|
||||
'>='=80
|
||||
'!='=81
|
||||
'&&'=82
|
||||
'||'=83
|
||||
'++'=84
|
||||
'--'=85
|
||||
'+'=86
|
||||
'-'=87
|
||||
'*'=88
|
||||
'/'=89
|
||||
'&'=90
|
||||
'|'=91
|
||||
'^'=92
|
||||
'%'=93
|
||||
'+='=94
|
||||
'-='=95
|
||||
'*='=96
|
||||
'/='=97
|
||||
'&='=98
|
||||
'|='=99
|
||||
'^='=100
|
||||
'%='=101
|
||||
'<<='=102
|
||||
'>>='=103
|
||||
'>>>='=104
|
||||
'->'=105
|
||||
'::'=106
|
||||
'@'=107
|
||||
'...'=108
|
||||
@@ -170,7 +170,7 @@ ELLIPSIS: '...';
|
||||
|
||||
WS: [ \t\r\n\u000C]+ -> channel(HIDDEN);
|
||||
BLOCK_COMMENT: '/*' .*? '*/' -> channel(HIDDEN);
|
||||
LINE_COMMENT: '//' ~[\r\n]* -> channel(HIDDEN);
|
||||
LINE_COMMENT: '//'~[\r\n]* -> channel(HIDDEN);
|
||||
|
||||
// Identifiers
|
||||
|
||||
|
||||
@@ -1,23 +1,4 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavaLexer.g4 by ANTLR 4.9.2
|
||||
// Generated from JavaLexer.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
|
||||
import org.antlr.v4.runtime.CharStream;
|
||||
@@ -33,12 +14,6 @@ import org.antlr.v4.runtime.dfa.DFA;
|
||||
|
||||
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
|
||||
public class JavaLexer extends Lexer {
|
||||
static {
|
||||
RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION);
|
||||
}
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
|
||||
public static final int ABSTRACT = 1,
|
||||
ASSERT = 2,
|
||||
BOOLEAN = 3,
|
||||
@@ -151,438 +126,11 @@ public class JavaLexer extends Lexer {
|
||||
BLOCK_COMMENT = 110,
|
||||
LINE_COMMENT = 111,
|
||||
IDENTIFIER = 112;
|
||||
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
|
||||
|
||||
public static String[] modeNames = {"DEFAULT_MODE"};
|
||||
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VAR",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"BLOCK_COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER",
|
||||
"ExponentPart",
|
||||
"EscapeSequence",
|
||||
"HexDigits",
|
||||
"HexDigit",
|
||||
"Digits",
|
||||
"LetterOrDigit",
|
||||
"Letter"
|
||||
};
|
||||
}
|
||||
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null,
|
||||
"'abstract'",
|
||||
"'assert'",
|
||||
"'boolean'",
|
||||
"'break'",
|
||||
"'byte'",
|
||||
"'case'",
|
||||
"'catch'",
|
||||
"'char'",
|
||||
"'class'",
|
||||
"'const'",
|
||||
"'continue'",
|
||||
"'default'",
|
||||
"'do'",
|
||||
"'double'",
|
||||
"'else'",
|
||||
"'enum'",
|
||||
"'extends'",
|
||||
"'final'",
|
||||
"'finally'",
|
||||
"'float'",
|
||||
"'for'",
|
||||
"'if'",
|
||||
"'goto'",
|
||||
"'implements'",
|
||||
"'import'",
|
||||
"'instanceof'",
|
||||
"'int'",
|
||||
"'interface'",
|
||||
"'long'",
|
||||
"'native'",
|
||||
"'new'",
|
||||
"'package'",
|
||||
"'private'",
|
||||
"'protected'",
|
||||
"'public'",
|
||||
"'return'",
|
||||
"'short'",
|
||||
"'static'",
|
||||
"'strictfp'",
|
||||
"'super'",
|
||||
"'switch'",
|
||||
"'synchronized'",
|
||||
"'this'",
|
||||
"'throw'",
|
||||
"'throws'",
|
||||
"'transient'",
|
||||
"'try'",
|
||||
"'var'",
|
||||
"'void'",
|
||||
"'volatile'",
|
||||
"'while'",
|
||||
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,
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VAR",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"BLOCK_COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER"
|
||||
};
|
||||
}
|
||||
|
||||
private static final String[] _SYMBOLIC_NAMES = makeSymbolicNames();
|
||||
public static final Vocabulary VOCABULARY = new VocabularyImpl(_LITERAL_NAMES, _SYMBOLIC_NAMES);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
public JavaLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "JavaLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@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\2r\u03b9\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"
|
||||
@@ -918,6 +466,31 @@ public class JavaLexer extends Lexer {
|
||||
+ "\u0378\u037d\u0385\u0388\u038f\u0396\u039b\u039d\u03a1\u03a9\u03ad\u03b1"
|
||||
+ "\u03b7\3\2\3\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 {
|
||||
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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
|
||||
@@ -925,4 +498,406 @@ public class JavaLexer extends Lexer {
|
||||
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
|
||||
}
|
||||
}
|
||||
|
||||
public JavaLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
private static String[] makeRuleNames() {
|
||||
return new String[] {
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VAR",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"BLOCK_COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER",
|
||||
"ExponentPart",
|
||||
"EscapeSequence",
|
||||
"HexDigits",
|
||||
"HexDigit",
|
||||
"Digits",
|
||||
"LetterOrDigit",
|
||||
"Letter"
|
||||
};
|
||||
}
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null,
|
||||
"'abstract'",
|
||||
"'assert'",
|
||||
"'boolean'",
|
||||
"'break'",
|
||||
"'byte'",
|
||||
"'case'",
|
||||
"'catch'",
|
||||
"'char'",
|
||||
"'class'",
|
||||
"'const'",
|
||||
"'continue'",
|
||||
"'default'",
|
||||
"'do'",
|
||||
"'double'",
|
||||
"'else'",
|
||||
"'enum'",
|
||||
"'extends'",
|
||||
"'final'",
|
||||
"'finally'",
|
||||
"'float'",
|
||||
"'for'",
|
||||
"'if'",
|
||||
"'goto'",
|
||||
"'implements'",
|
||||
"'import'",
|
||||
"'instanceof'",
|
||||
"'int'",
|
||||
"'interface'",
|
||||
"'long'",
|
||||
"'native'",
|
||||
"'new'",
|
||||
"'package'",
|
||||
"'private'",
|
||||
"'protected'",
|
||||
"'public'",
|
||||
"'return'",
|
||||
"'short'",
|
||||
"'static'",
|
||||
"'strictfp'",
|
||||
"'super'",
|
||||
"'switch'",
|
||||
"'synchronized'",
|
||||
"'this'",
|
||||
"'throw'",
|
||||
"'throws'",
|
||||
"'transient'",
|
||||
"'try'",
|
||||
"'var'",
|
||||
"'void'",
|
||||
"'volatile'",
|
||||
"'while'",
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
null,
|
||||
"'null'",
|
||||
"'('",
|
||||
"')'",
|
||||
"'{'",
|
||||
"'}'",
|
||||
"'['",
|
||||
"']'",
|
||||
"';'",
|
||||
"','",
|
||||
"'.'",
|
||||
"'='",
|
||||
"'>'",
|
||||
"'<'",
|
||||
"'!'",
|
||||
"'~'",
|
||||
"'?'",
|
||||
"':'",
|
||||
"'=='",
|
||||
"'<='",
|
||||
"'>='",
|
||||
"'!='",
|
||||
"'&&'",
|
||||
"'||'",
|
||||
"'++'",
|
||||
"'--'",
|
||||
"'+'",
|
||||
"'-'",
|
||||
"'*'",
|
||||
"'/'",
|
||||
"'&'",
|
||||
"'|'",
|
||||
"'^'",
|
||||
"'%'",
|
||||
"'+='",
|
||||
"'-='",
|
||||
"'*='",
|
||||
"'/='",
|
||||
"'&='",
|
||||
"'|='",
|
||||
"'^='",
|
||||
"'%='",
|
||||
"'<<='",
|
||||
"'>>='",
|
||||
"'>>>='",
|
||||
"'->'",
|
||||
"'::'",
|
||||
"'@'",
|
||||
"'...'"
|
||||
};
|
||||
}
|
||||
|
||||
private static String[] makeSymbolicNames() {
|
||||
return new String[] {
|
||||
null,
|
||||
"ABSTRACT",
|
||||
"ASSERT",
|
||||
"BOOLEAN",
|
||||
"BREAK",
|
||||
"BYTE",
|
||||
"CASE",
|
||||
"CATCH",
|
||||
"CHAR",
|
||||
"CLASS",
|
||||
"CONST",
|
||||
"CONTINUE",
|
||||
"DEFAULT",
|
||||
"DO",
|
||||
"DOUBLE",
|
||||
"ELSE",
|
||||
"ENUM",
|
||||
"EXTENDS",
|
||||
"FINAL",
|
||||
"FINALLY",
|
||||
"FLOAT",
|
||||
"FOR",
|
||||
"IF",
|
||||
"GOTO",
|
||||
"IMPLEMENTS",
|
||||
"IMPORT",
|
||||
"INSTANCEOF",
|
||||
"INT",
|
||||
"INTERFACE",
|
||||
"LONG",
|
||||
"NATIVE",
|
||||
"NEW",
|
||||
"PACKAGE",
|
||||
"PRIVATE",
|
||||
"PROTECTED",
|
||||
"PUBLIC",
|
||||
"RETURN",
|
||||
"SHORT",
|
||||
"STATIC",
|
||||
"STRICTFP",
|
||||
"SUPER",
|
||||
"SWITCH",
|
||||
"SYNCHRONIZED",
|
||||
"THIS",
|
||||
"THROW",
|
||||
"THROWS",
|
||||
"TRANSIENT",
|
||||
"TRY",
|
||||
"VAR",
|
||||
"VOID",
|
||||
"VOLATILE",
|
||||
"WHILE",
|
||||
"DECIMAL_LITERAL",
|
||||
"HEX_LITERAL",
|
||||
"OCT_LITERAL",
|
||||
"BINARY_LITERAL",
|
||||
"FLOAT_LITERAL",
|
||||
"HEX_FLOAT_LITERAL",
|
||||
"BOOL_LITERAL",
|
||||
"CHAR_LITERAL",
|
||||
"STRING_LITERAL",
|
||||
"NULL_LITERAL",
|
||||
"LPAREN",
|
||||
"RPAREN",
|
||||
"LBRACE",
|
||||
"RBRACE",
|
||||
"LBRACK",
|
||||
"RBRACK",
|
||||
"SEMI",
|
||||
"COMMA",
|
||||
"DOT",
|
||||
"ASSIGN",
|
||||
"GT",
|
||||
"LT",
|
||||
"BANG",
|
||||
"TILDE",
|
||||
"QUESTION",
|
||||
"COLON",
|
||||
"EQUAL",
|
||||
"LE",
|
||||
"GE",
|
||||
"NOTEQUAL",
|
||||
"AND",
|
||||
"OR",
|
||||
"INC",
|
||||
"DEC",
|
||||
"ADD",
|
||||
"SUB",
|
||||
"MUL",
|
||||
"DIV",
|
||||
"BITAND",
|
||||
"BITOR",
|
||||
"CARET",
|
||||
"MOD",
|
||||
"ADD_ASSIGN",
|
||||
"SUB_ASSIGN",
|
||||
"MUL_ASSIGN",
|
||||
"DIV_ASSIGN",
|
||||
"AND_ASSIGN",
|
||||
"OR_ASSIGN",
|
||||
"XOR_ASSIGN",
|
||||
"MOD_ASSIGN",
|
||||
"LSHIFT_ASSIGN",
|
||||
"RSHIFT_ASSIGN",
|
||||
"URSHIFT_ASSIGN",
|
||||
"ARROW",
|
||||
"COLONCOLON",
|
||||
"AT",
|
||||
"ELLIPSIS",
|
||||
"WS",
|
||||
"BLOCK_COMMENT",
|
||||
"LINE_COMMENT",
|
||||
"IDENTIFIER"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "JavaLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ATN getATN() {
|
||||
return _ATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getModeNames() {
|
||||
return modeNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+18
-34
@@ -1,23 +1,4 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.2
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
|
||||
import org.antlr.v4.runtime.ParserRuleContext;
|
||||
@@ -1514,20 +1495,6 @@ public class JavaParserBaseListener implements JavaParserListener {
|
||||
@Override
|
||||
public void exitArguments(JavaParser.ArgumentsContext ctx) {}
|
||||
|
||||
/**
|
||||
* {@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}
|
||||
*
|
||||
@@ -1535,6 +1502,7 @@ public class JavaParserBaseListener implements JavaParserListener {
|
||||
*/
|
||||
@Override
|
||||
public void visitTerminal(TerminalNode node) {}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@@ -1542,4 +1510,20 @@ public class JavaParserBaseListener implements JavaParserListener {
|
||||
*/
|
||||
@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) {}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,4 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.2
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
|
||||
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
||||
|
||||
@@ -1,23 +1,4 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.2
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
|
||||
import org.antlr.v4.runtime.tree.ParseTreeListener;
|
||||
|
||||
@@ -1,23 +1,4 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.2
|
||||
// Generated from JavaParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.java;
|
||||
|
||||
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
|
||||
|
||||
@@ -1,24 +1,5 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavadocLexer.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.javadoc;
|
||||
// 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;
|
||||
@@ -34,12 +15,6 @@ import org.antlr.v4.runtime.dfa.DFA;
|
||||
|
||||
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
|
||||
public class JavadocLexer extends Lexer {
|
||||
static {
|
||||
RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION);
|
||||
}
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
|
||||
public static final int NAME = 1,
|
||||
NEWLINE = 2,
|
||||
SPACE = 3,
|
||||
@@ -52,144 +27,11 @@ public class JavadocLexer extends Lexer {
|
||||
INLINE_TAG_START = 10,
|
||||
BRACE_OPEN = 11,
|
||||
BRACE_CLOSE = 12;
|
||||
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
|
||||
|
||||
public static String[] modeNames = {"DEFAULT_MODE"};
|
||||
|
||||
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();
|
||||
|
||||
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);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
public JavadocLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "JavadocLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getModeNames() {
|
||||
return modeNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ATN getATN() {
|
||||
return _ATN;
|
||||
}
|
||||
|
||||
@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"
|
||||
@@ -224,6 +66,31 @@ public class JavadocLexer extends Lexer {
|
||||
+ "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 {
|
||||
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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
|
||||
@@ -231,4 +98,112 @@ public class JavadocLexer extends Lexer {
|
||||
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
|
||||
}
|
||||
}
|
||||
|
||||
public JavadocLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
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"
|
||||
};
|
||||
}
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null, null, null, null, null, "'@'", "'*'", "'/'", null, null, "'{@'", "'{'", "'}'"
|
||||
};
|
||||
}
|
||||
|
||||
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
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "JavadocLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ATN getATN() {
|
||||
return _ATN;
|
||||
}
|
||||
|
||||
@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;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getModeNames() {
|
||||
return modeNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
+19
-35
@@ -1,24 +1,5 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.javadoc;
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.javadoc;
|
||||
|
||||
import org.antlr.v4.runtime.ParserRuleContext;
|
||||
import org.antlr.v4.runtime.tree.ErrorNode;
|
||||
@@ -339,20 +320,6 @@ public class JavadocParserBaseListener implements JavadocParserListener {
|
||||
@Override
|
||||
public void exitBraceText(JavadocParser.BraceTextContext ctx) {}
|
||||
|
||||
/**
|
||||
* {@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}
|
||||
*
|
||||
@@ -360,6 +327,7 @@ public class JavadocParserBaseListener implements JavadocParserListener {
|
||||
*/
|
||||
@Override
|
||||
public void visitTerminal(TerminalNode node) {}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@@ -367,4 +335,20 @@ public class JavadocParserBaseListener implements JavadocParserListener {
|
||||
*/
|
||||
@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) {}
|
||||
}
|
||||
|
||||
+68
-88
@@ -1,24 +1,5 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.javadoc;
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.javadoc;
|
||||
|
||||
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
||||
|
||||
@@ -35,221 +16,220 @@ public class JavadocParserBaseVisitor<T> extends AbstractParseTreeVisitor<T>
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDocumentation(JavadocParser.DocumentationContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDocumentation(JavadocParser.DocumentationContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDocumentationContent(JavadocParser.DocumentationContentContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDocumentationContent(JavadocParser.DocumentationContentContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitSkipWhitespace(JavadocParser.SkipWhitespaceContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescription(JavadocParser.DescriptionContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescription(JavadocParser.DescriptionContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescriptionLine(JavadocParser.DescriptionLineContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescriptionLine(JavadocParser.DescriptionLineContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescriptionLineStart(JavadocParser.DescriptionLineStartContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescriptionLineNoSpaceNoAt(
|
||||
JavadocParser.DescriptionLineNoSpaceNoAtContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescriptionLineNoSpaceNoAt(JavadocParser.DescriptionLineNoSpaceNoAtContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescriptionLineElement(JavadocParser.DescriptionLineElementContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescriptionLineText(JavadocParser.DescriptionLineTextContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitDescriptionNewline(JavadocParser.DescriptionNewlineContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitTagSection(JavadocParser.TagSectionContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitTagSection(JavadocParser.TagSectionContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBlockTag(JavadocParser.BlockTagContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBlockTag(JavadocParser.BlockTagContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBlockTagName(JavadocParser.BlockTagNameContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBlockTagName(JavadocParser.BlockTagNameContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBlockTagContent(JavadocParser.BlockTagContentContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBlockTagContent(JavadocParser.BlockTagContentContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBlockTagText(JavadocParser.BlockTagTextContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBlockTagText(JavadocParser.BlockTagTextContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBlockTagTextElement(JavadocParser.BlockTagTextElementContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitInlineTag(JavadocParser.InlineTagContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitInlineTag(JavadocParser.InlineTagContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitInlineTagName(JavadocParser.InlineTagNameContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitInlineTagName(JavadocParser.InlineTagNameContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitInlineTagContent(JavadocParser.InlineTagContentContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitInlineTagContent(JavadocParser.InlineTagContentContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBraceExpression(JavadocParser.BraceExpressionContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBraceExpression(JavadocParser.BraceExpressionContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBraceContent(JavadocParser.BraceContentContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBraceContent(JavadocParser.BraceContentContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
* <p>The default implementation returns the result of calling {@link #visitChildren} on {@code
|
||||
* context}.
|
||||
* ctx}.
|
||||
*/
|
||||
@Override
|
||||
public T visitBraceText(JavadocParser.BraceTextContext context) {
|
||||
return visitChildren(context);
|
||||
public T visitBraceText(JavadocParser.BraceTextContext ctx) {
|
||||
return visitChildren(ctx);
|
||||
}
|
||||
}
|
||||
|
||||
+2
-21
@@ -1,24 +1,5 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.javadoc;
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.javadoc;
|
||||
|
||||
import org.antlr.v4.runtime.tree.ParseTreeListener;
|
||||
|
||||
|
||||
+2
-21
@@ -1,24 +1,5 @@
|
||||
/************************************************************************************
|
||||
* 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/>.
|
||||
*
|
||||
**************************************************************************************/
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.2
|
||||
package com.itsaky.androidide.antlr4.javadoc;
|
||||
// Generated from JavadocParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.javadoc;
|
||||
|
||||
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+2467
-2105
File diff suppressed because it is too large
Load Diff
+1748
File diff suppressed because it is too large
Load Diff
+2086
-1736
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,384 +1,406 @@
|
||||
// Generated from UnicodeClasses.g4 by ANTLR 4.9.2
|
||||
// Generated from UnicodeClasses.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.kotlin;
|
||||
import org.antlr.v4.runtime.Lexer;
|
||||
|
||||
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.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.dfa.DFA;
|
||||
import org.antlr.v4.runtime.misc.*;
|
||||
|
||||
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
|
||||
public class UnicodeClasses extends Lexer {
|
||||
static { RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION); }
|
||||
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"};
|
||||
|
||||
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 {
|
||||
RuntimeMetaData.checkVersion("4.9.3", RuntimeMetaData.VERSION);
|
||||
}
|
||||
|
||||
public static String[] modeNames = {
|
||||
"DEFAULT_MODE"
|
||||
};
|
||||
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"
|
||||
};
|
||||
}
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
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);
|
||||
static {
|
||||
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
|
||||
for (int i = 0; i < _ATN.getNumberOfDecisions(); i++) {
|
||||
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
public UnicodeClasses(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
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"
|
||||
};
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {};
|
||||
}
|
||||
|
||||
@Override
|
||||
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"
|
||||
};
|
||||
}
|
||||
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
public UnicodeClasses(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache);
|
||||
}
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() { return "UnicodeClasses.g4"; }
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "UnicodeClasses.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() { return ruleNames; }
|
||||
@Override
|
||||
public ATN getATN() {
|
||||
return _ATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() { return _serializedATN; }
|
||||
@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; }
|
||||
|
||||
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);
|
||||
}
|
||||
}
|
||||
}
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// Generated from
|
||||
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLLexer.g4 by ANTLR 4.9.2
|
||||
// Generated from XMLLexer.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.xml;
|
||||
|
||||
import org.antlr.v4.runtime.CharStream;
|
||||
@@ -15,12 +14,6 @@ import org.antlr.v4.runtime.dfa.DFA;
|
||||
|
||||
@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"})
|
||||
public class XMLLexer extends Lexer {
|
||||
static {
|
||||
RuntimeMetaData.checkVersion("4.9.2", RuntimeMetaData.VERSION);
|
||||
}
|
||||
|
||||
protected static final DFA[] _decisionToDFA;
|
||||
protected static final PredictionContextCache _sharedContextCache = new PredictionContextCache();
|
||||
public static final int COLON = 1,
|
||||
COMMENT = 2,
|
||||
CDATA = 3,
|
||||
@@ -42,146 +35,11 @@ public class XMLLexer extends Lexer {
|
||||
S = 19,
|
||||
PI = 20;
|
||||
public static final int INSIDE = 1, PROC_INSTR = 2;
|
||||
public static String[] channelNames = {"DEFAULT_TOKEN_CHANNEL", "HIDDEN"};
|
||||
|
||||
public static String[] modeNames = {"DEFAULT_MODE", "INSIDE", "PROC_INSTR"};
|
||||
|
||||
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"
|
||||
};
|
||||
}
|
||||
|
||||
public static final String[] ruleNames = makeRuleNames();
|
||||
|
||||
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",
|
||||
"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);
|
||||
|
||||
/**
|
||||
* @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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
public XMLLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "XMLLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@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\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"
|
||||
@@ -264,6 +122,31 @@ public class XMLLexer extends Lexer {
|
||||
+ "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 {
|
||||
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);
|
||||
}
|
||||
|
||||
if (tokenNames[i] == null) {
|
||||
tokenNames[i] = "<INVALID>";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static {
|
||||
_decisionToDFA = new DFA[_ATN.getNumberOfDecisions()];
|
||||
@@ -271,4 +154,114 @@ public class XMLLexer extends Lexer {
|
||||
_decisionToDFA[i] = new DFA(_ATN.getDecisionState(i), i);
|
||||
}
|
||||
}
|
||||
|
||||
public XMLLexer(CharStream input) {
|
||||
super(input);
|
||||
_interp = new LexerATNSimulator(this, _ATN, _decisionToDFA, _sharedContextCache);
|
||||
}
|
||||
|
||||
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"
|
||||
};
|
||||
}
|
||||
|
||||
private static String[] makeLiteralNames() {
|
||||
return new String[] {
|
||||
null, "':'", null, null, null, null, null, null, "'<'", "'</'", null, null, "'>'", null,
|
||||
"'/>'", "'/'", "'='"
|
||||
};
|
||||
}
|
||||
|
||||
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
|
||||
public String[] getRuleNames() {
|
||||
return ruleNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Vocabulary getVocabulary() {
|
||||
return VOCABULARY;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getSerializedATN() {
|
||||
return _serializedATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getGrammarFileName() {
|
||||
return "XMLLexer.g4";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ATN getATN() {
|
||||
return _ATN;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getChannelNames() {
|
||||
return channelNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String[] getModeNames() {
|
||||
return modeNames;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Deprecated
|
||||
public String[] getTokenNames() {
|
||||
return tokenNames;
|
||||
}
|
||||
}
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -1,5 +1,4 @@
|
||||
// Generated from
|
||||
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLParser.g4 by ANTLR 4.9.2
|
||||
// Generated from XMLParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.xml;
|
||||
|
||||
import org.antlr.v4.runtime.ParserRuleContext;
|
||||
@@ -166,20 +165,6 @@ public class XMLParserBaseListener implements XMLParserListener {
|
||||
@Override
|
||||
public void exitMisc(XMLParser.MiscContext ctx) {}
|
||||
|
||||
/**
|
||||
* {@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}
|
||||
*
|
||||
@@ -187,6 +172,7 @@ public class XMLParserBaseListener implements XMLParserListener {
|
||||
*/
|
||||
@Override
|
||||
public void visitTerminal(TerminalNode node) {}
|
||||
|
||||
/**
|
||||
* {@inheritDoc}
|
||||
*
|
||||
@@ -194,4 +180,20 @@ public class XMLParserBaseListener implements XMLParserListener {
|
||||
*/
|
||||
@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) {}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// Generated from
|
||||
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLParser.g4 by ANTLR 4.9.2
|
||||
// Generated from XMLParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.xml;
|
||||
|
||||
import org.antlr.v4.runtime.tree.AbstractParseTreeVisitor;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// Generated from
|
||||
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLParser.g4 by ANTLR 4.9.2
|
||||
// Generated from XMLParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.xml;
|
||||
|
||||
import org.antlr.v4.runtime.tree.ParseTreeListener;
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
// Generated from
|
||||
// D:/Projects/AndroidStudioProjects/AndroidIDE/lexers/src/main/java/com/itsaky/androidide/lexers/xml\XMLParser.g4 by ANTLR 4.9.2
|
||||
// Generated from XMLParser.g4 by ANTLR 4.9.3
|
||||
package com.itsaky.androidide.lexers.xml;
|
||||
|
||||
import org.antlr.v4.runtime.tree.ParseTreeVisitor;
|
||||
|
||||
@@ -28,7 +28,7 @@ public class CancelService {
|
||||
|
||||
/** The context key for the parameter name resolver. */
|
||||
protected static final Context.Key<CancelService> cancelServiceKey =
|
||||
new Context.Key<CancelService>();
|
||||
new Context.Key<>();
|
||||
|
||||
public static CancelService instance(Context context) {
|
||||
CancelService instance = context.get(cancelServiceKey);
|
||||
|
||||
@@ -45,12 +45,7 @@ public class NBParserFactory extends ParserFactory {
|
||||
public static void preRegister(Context context) {
|
||||
context.put(
|
||||
parserFactoryKey,
|
||||
new Context.Factory<ParserFactory>() {
|
||||
@Override
|
||||
public ParserFactory make(Context c) {
|
||||
return new NBParserFactory(c);
|
||||
}
|
||||
});
|
||||
(Context.Factory<ParserFactory>) c -> new NBParserFactory(c));
|
||||
}
|
||||
|
||||
private final ScannerFactory scannerFactory;
|
||||
|
||||
Reference in New Issue
Block a user