diff --git a/.gitignore b/.gitignore index 28626d1e7c..82da318b27 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,6 @@ classes/artifacts/client_jar/run.bat classes/artifacts/client_jar/client.jar *.jar .live/ +*/build/ +*/out/ +.gradle/ \ No newline at end of file diff --git a/.mvn/extensions.xml b/.mvn/extensions.xml new file mode 100644 index 0000000000..03e0ff60b0 --- /dev/null +++ b/.mvn/extensions.xml @@ -0,0 +1,7 @@ + + + com.gradle + gradle-enterprise-maven-extension + 1.1.4 + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000000..23450e52d9 --- /dev/null +++ b/build.gradle @@ -0,0 +1,29 @@ +allprojects { + apply plugin: 'maven' + + group = 'net.runelite' +version = '1.5.30-SNAPSHOT' +} + +subprojects { + apply plugin: 'java' + sourceCompatibility = 1.8 + targetCompatibility = 1.8 + tasks.withType(JavaCompile) { + options.encoding = 'UTF-8' + } + + + repositories { + mavenLocal() + + maven { url "http://repo1.maven.org/maven2" } + maven { url "http://repo.runelite.net" } + maven { url "http://repo.maven.apache.org/maven2" } + maven { url "https://raw.githubusercontent.com/runelite-extended/maven-repo/master" } + } + + + + +} diff --git a/cache-client/build.gradle b/cache-client/build.gradle new file mode 100644 index 0000000000..a0a33cd5e9 --- /dev/null +++ b/cache-client/build.gradle @@ -0,0 +1,9 @@ + +description = 'Cache Client' +dependencies { + compile project(':cache') + compile project(':protocol') + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.slf4j', name: 'slf4j-simple', version:'1.7.26' + testCompile project(':cache') +} diff --git a/cache-updater/build.gradle b/cache-updater/build.gradle new file mode 100644 index 0000000000..c437e8062e --- /dev/null +++ b/cache-updater/build.gradle @@ -0,0 +1,12 @@ + +description = 'Cache Updater' +dependencies { + compile group: 'org.springframework.boot', name: 'spring-boot-starter', version:'1.5.6.RELEASE' + compile group: 'org.springframework.boot', name: 'spring-boot-starter-jdbc', version:'1.5.6.RELEASE' + compile group: 'org.springframework.boot', name: 'spring-boot-devtools', version:'1.5.6.RELEASE' + compile group: 'mysql', name: 'mysql-connector-java', version:'8.0.16' + compile project(':cache-client') + compile group: 'org.sql2o', name: 'sql2o', version:'1.6.0' + compile group: 'io.minio', name: 'minio', version:'3.0.6' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' +} diff --git a/cache/build.gradle b/cache/build.gradle new file mode 100644 index 0000000000..01e6abc89c --- /dev/null +++ b/cache/build.gradle @@ -0,0 +1,22 @@ + +description = 'Cache' +dependencies { + compile project(':http-api') + compile group: 'com.google.guava', name: 'guava', version:'28.0-jre' + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'org.apache.commons', name: 'commons-compress', version:'1.18' + compile group: 'com.google.code.gson', name: 'gson', version:'2.8.5' + compile group: 'io.netty', name: 'netty-buffer', version:'4.1.37.Final' + compile group: 'org.antlr', name: 'antlr4-runtime', version:'4.6' + compile group: 'commons-cli', name: 'commons-cli', version:'1.4' + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.slf4j', name: 'slf4j-simple', version:'1.7.26' + testCompile group: 'net.runelite.rs', name: 'cache', version:'165' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' +} + +task packageTests(type: Jar) { + from sourceSets.test.output + classifier = 'tests' +} +artifacts.archives packageTests diff --git a/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmBaseListener.java b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmBaseListener.java new file mode 100644 index 0000000000..07a835779a --- /dev/null +++ b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmBaseListener.java @@ -0,0 +1,339 @@ +// Generated from net\runelite\cache\script\assembler\rs2asm.g4 by ANTLR 4.6 +package net.runelite.cache.script.assembler; + +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.tree.ErrorNode; +import org.antlr.v4.runtime.tree.TerminalNode; + +/** + * This class provides an empty implementation of {@link rs2asmListener}, + * which can be extended to create a listener which only needs to handle a subset + * of the available methods. + */ +public class rs2asmBaseListener implements rs2asmListener { + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterProg(rs2asmParser.ProgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitProg(rs2asmParser.ProgContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterHeader(rs2asmParser.HeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitHeader(rs2asmParser.HeaderContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterId(rs2asmParser.IdContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitId(rs2asmParser.IdContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInt_stack_count(rs2asmParser.Int_stack_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInt_stack_count(rs2asmParser.Int_stack_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterString_stack_count(rs2asmParser.String_stack_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitString_stack_count(rs2asmParser.String_stack_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInt_var_count(rs2asmParser.Int_var_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInt_var_count(rs2asmParser.Int_var_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterString_var_count(rs2asmParser.String_var_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitString_var_count(rs2asmParser.String_var_countContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterId_value(rs2asmParser.Id_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitId_value(rs2asmParser.Id_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInt_stack_value(rs2asmParser.Int_stack_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInt_stack_value(rs2asmParser.Int_stack_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterString_stack_value(rs2asmParser.String_stack_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitString_stack_value(rs2asmParser.String_stack_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInt_var_value(rs2asmParser.Int_var_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInt_var_value(rs2asmParser.Int_var_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterString_var_value(rs2asmParser.String_var_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitString_var_value(rs2asmParser.String_var_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLine(rs2asmParser.LineContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLine(rs2asmParser.LineContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInstruction(rs2asmParser.InstructionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInstruction(rs2asmParser.InstructionContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterLabel(rs2asmParser.LabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitLabel(rs2asmParser.LabelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInstruction_name(rs2asmParser.Instruction_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInstruction_name(rs2asmParser.Instruction_nameContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterName_string(rs2asmParser.Name_stringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitName_string(rs2asmParser.Name_stringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterName_opcode(rs2asmParser.Name_opcodeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitName_opcode(rs2asmParser.Name_opcodeContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterInstruction_operand(rs2asmParser.Instruction_operandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitInstruction_operand(rs2asmParser.Instruction_operandContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOperand_int(rs2asmParser.Operand_intContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOperand_int(rs2asmParser.Operand_intContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOperand_qstring(rs2asmParser.Operand_qstringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOperand_qstring(rs2asmParser.Operand_qstringContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterOperand_label(rs2asmParser.Operand_labelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitOperand_label(rs2asmParser.Operand_labelContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitch_lookup(rs2asmParser.Switch_lookupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitch_lookup(rs2asmParser.Switch_lookupContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitch_key(rs2asmParser.Switch_keyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitch_key(rs2asmParser.Switch_keyContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterSwitch_value(rs2asmParser.Switch_valueContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitSwitch_value(rs2asmParser.Switch_valueContext ctx) { } + + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void enterEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void exitEveryRule(ParserRuleContext ctx) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitTerminal(TerminalNode node) { } + /** + * {@inheritDoc} + * + *

The default implementation does nothing.

+ */ + @Override public void visitErrorNode(ErrorNode node) { } +} \ No newline at end of file diff --git a/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmLexer.java b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmLexer.java new file mode 100644 index 0000000000..de62dba6cb --- /dev/null +++ b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmLexer.java @@ -0,0 +1,146 @@ +// Generated from net\runelite\cache\script\assembler\rs2asm.g4 by ANTLR 4.6 +package net.runelite.cache.script.assembler; + +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.Lexer; +import org.antlr.v4.runtime.RuntimeMetaData; +import org.antlr.v4.runtime.Vocabulary; +import org.antlr.v4.runtime.VocabularyImpl; +import org.antlr.v4.runtime.atn.ATN; +import org.antlr.v4.runtime.atn.ATNDeserializer; +import org.antlr.v4.runtime.atn.LexerATNSimulator; +import org.antlr.v4.runtime.atn.PredictionContextCache; +import org.antlr.v4.runtime.dfa.DFA; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class rs2asmLexer extends Lexer { + static { RuntimeMetaData.checkVersion("4.6", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, NEWLINE=7, INT=8, QSTRING=9, + IDENTIFIER=10, COMMENT=11, WS=12; + public static String[] modeNames = { + "DEFAULT_MODE" + }; + + public static final String[] ruleNames = { + "T__0", "T__1", "T__2", "T__3", "T__4", "T__5", "NEWLINE", "INT", "QSTRING", + "IDENTIFIER", "COMMENT", "WS" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'.id '", "'.int_stack_count '", "'.string_stack_count '", "'.int_var_count '", + "'.string_var_count '", "':'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, "NEWLINE", "INT", "QSTRING", + "IDENTIFIER", "COMMENT", "WS" + }; + 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] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + + public rs2asmLexer(CharStream input) { + super(input); + _interp = new LexerATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + + @Override + public String getGrammarFileName() { return "rs2asm.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public String[] getModeNames() { return modeNames; } + + @Override + public ATN getATN() { return _ATN; } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\2\16\u0099\b\1\4\2"+ + "\t\2\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4"+ + "\13\t\13\4\f\t\f\4\r\t\r\3\2\3\2\3\2\3\2\3\2\3\3\3\3\3\3\3\3\3\3\3\3\3"+ + "\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\3\4\3\4\3\4\3\4\3\4\3\4"+ + "\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\4\3\5\3\5\3"+ + "\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\5\3\6\3\6\3\6\3\6"+ + "\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\6\3\7\3\7\3"+ + "\b\6\bn\n\b\r\b\16\bo\3\t\5\ts\n\t\3\t\6\tv\n\t\r\t\16\tw\3\n\3\n\3\n"+ + "\3\n\7\n~\n\n\f\n\16\n\u0081\13\n\3\n\3\n\3\13\6\13\u0086\n\13\r\13\16"+ + "\13\u0087\3\f\3\f\7\f\u008c\n\f\f\f\16\f\u008f\13\f\3\f\3\f\3\r\6\r\u0094"+ + "\n\r\r\r\16\r\u0095\3\r\3\r\2\2\16\3\3\5\4\7\5\t\6\13\7\r\b\17\t\21\n"+ + "\23\13\25\f\27\r\31\16\3\2\b\4\2\f\f\17\17\3\2\62;\6\2\f\f\17\17$$^^\4"+ + "\2$$^^\6\2\62;C\\aac|\4\2\13\13\"\"\u00a0\2\3\3\2\2\2\2\5\3\2\2\2\2\7"+ + "\3\2\2\2\2\t\3\2\2\2\2\13\3\2\2\2\2\r\3\2\2\2\2\17\3\2\2\2\2\21\3\2\2"+ + "\2\2\23\3\2\2\2\2\25\3\2\2\2\2\27\3\2\2\2\2\31\3\2\2\2\3\33\3\2\2\2\5"+ + " \3\2\2\2\7\62\3\2\2\2\tG\3\2\2\2\13W\3\2\2\2\rj\3\2\2\2\17m\3\2\2\2\21"+ + "r\3\2\2\2\23y\3\2\2\2\25\u0085\3\2\2\2\27\u0089\3\2\2\2\31\u0093\3\2\2"+ + "\2\33\34\7\60\2\2\34\35\7k\2\2\35\36\7f\2\2\36\37\7\"\2\2\37\4\3\2\2\2"+ + " !\7\60\2\2!\"\7k\2\2\"#\7p\2\2#$\7v\2\2$%\7a\2\2%&\7u\2\2&\'\7v\2\2\'"+ + "(\7c\2\2()\7e\2\2)*\7m\2\2*+\7a\2\2+,\7e\2\2,-\7q\2\2-.\7w\2\2./\7p\2"+ + "\2/\60\7v\2\2\60\61\7\"\2\2\61\6\3\2\2\2\62\63\7\60\2\2\63\64\7u\2\2\64"+ + "\65\7v\2\2\65\66\7t\2\2\66\67\7k\2\2\678\7p\2\289\7i\2\29:\7a\2\2:;\7"+ + "u\2\2;<\7v\2\2<=\7c\2\2=>\7e\2\2>?\7m\2\2?@\7a\2\2@A\7e\2\2AB\7q\2\2B"+ + "C\7w\2\2CD\7p\2\2DE\7v\2\2EF\7\"\2\2F\b\3\2\2\2GH\7\60\2\2HI\7k\2\2IJ"+ + "\7p\2\2JK\7v\2\2KL\7a\2\2LM\7x\2\2MN\7c\2\2NO\7t\2\2OP\7a\2\2PQ\7e\2\2"+ + "QR\7q\2\2RS\7w\2\2ST\7p\2\2TU\7v\2\2UV\7\"\2\2V\n\3\2\2\2WX\7\60\2\2X"+ + "Y\7u\2\2YZ\7v\2\2Z[\7t\2\2[\\\7k\2\2\\]\7p\2\2]^\7i\2\2^_\7a\2\2_`\7x"+ + "\2\2`a\7c\2\2ab\7t\2\2bc\7a\2\2cd\7e\2\2de\7q\2\2ef\7w\2\2fg\7p\2\2gh"+ + "\7v\2\2hi\7\"\2\2i\f\3\2\2\2jk\7<\2\2k\16\3\2\2\2ln\t\2\2\2ml\3\2\2\2"+ + "no\3\2\2\2om\3\2\2\2op\3\2\2\2p\20\3\2\2\2qs\7/\2\2rq\3\2\2\2rs\3\2\2"+ + "\2su\3\2\2\2tv\t\3\2\2ut\3\2\2\2vw\3\2\2\2wu\3\2\2\2wx\3\2\2\2x\22\3\2"+ + "\2\2y\177\7$\2\2z~\n\4\2\2{|\7^\2\2|~\t\5\2\2}z\3\2\2\2}{\3\2\2\2~\u0081"+ + "\3\2\2\2\177}\3\2\2\2\177\u0080\3\2\2\2\u0080\u0082\3\2\2\2\u0081\177"+ + "\3\2\2\2\u0082\u0083\7$\2\2\u0083\24\3\2\2\2\u0084\u0086\t\6\2\2\u0085"+ + "\u0084\3\2\2\2\u0086\u0087\3\2\2\2\u0087\u0085\3\2\2\2\u0087\u0088\3\2"+ + "\2\2\u0088\26\3\2\2\2\u0089\u008d\7=\2\2\u008a\u008c\n\2\2\2\u008b\u008a"+ + "\3\2\2\2\u008c\u008f\3\2\2\2\u008d\u008b\3\2\2\2\u008d\u008e\3\2\2\2\u008e"+ + "\u0090\3\2\2\2\u008f\u008d\3\2\2\2\u0090\u0091\b\f\2\2\u0091\30\3\2\2"+ + "\2\u0092\u0094\t\7\2\2\u0093\u0092\3\2\2\2\u0094\u0095\3\2\2\2\u0095\u0093"+ + "\3\2\2\2\u0095\u0096\3\2\2\2\u0096\u0097\3\2\2\2\u0097\u0098\b\r\2\2\u0098"+ + "\32\3\2\2\2\13\2orw}\177\u0087\u008d\u0095\3\2\3\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); + } + } +} \ No newline at end of file diff --git a/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmListener.java b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmListener.java new file mode 100644 index 0000000000..698b8857c6 --- /dev/null +++ b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmListener.java @@ -0,0 +1,260 @@ +// Generated from net\runelite\cache\script\assembler\rs2asm.g4 by ANTLR 4.6 +package net.runelite.cache.script.assembler; +import org.antlr.v4.runtime.tree.ParseTreeListener; + +/** + * This interface defines a complete listener for a parse tree produced by + * {@link rs2asmParser}. + */ +public interface rs2asmListener extends ParseTreeListener { + /** + * Enter a parse tree produced by {@link rs2asmParser#prog}. + * @param ctx the parse tree + */ + void enterProg(rs2asmParser.ProgContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#prog}. + * @param ctx the parse tree + */ + void exitProg(rs2asmParser.ProgContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#header}. + * @param ctx the parse tree + */ + void enterHeader(rs2asmParser.HeaderContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#header}. + * @param ctx the parse tree + */ + void exitHeader(rs2asmParser.HeaderContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#id}. + * @param ctx the parse tree + */ + void enterId(rs2asmParser.IdContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#id}. + * @param ctx the parse tree + */ + void exitId(rs2asmParser.IdContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#int_stack_count}. + * @param ctx the parse tree + */ + void enterInt_stack_count(rs2asmParser.Int_stack_countContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#int_stack_count}. + * @param ctx the parse tree + */ + void exitInt_stack_count(rs2asmParser.Int_stack_countContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#string_stack_count}. + * @param ctx the parse tree + */ + void enterString_stack_count(rs2asmParser.String_stack_countContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#string_stack_count}. + * @param ctx the parse tree + */ + void exitString_stack_count(rs2asmParser.String_stack_countContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#int_var_count}. + * @param ctx the parse tree + */ + void enterInt_var_count(rs2asmParser.Int_var_countContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#int_var_count}. + * @param ctx the parse tree + */ + void exitInt_var_count(rs2asmParser.Int_var_countContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#string_var_count}. + * @param ctx the parse tree + */ + void enterString_var_count(rs2asmParser.String_var_countContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#string_var_count}. + * @param ctx the parse tree + */ + void exitString_var_count(rs2asmParser.String_var_countContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#id_value}. + * @param ctx the parse tree + */ + void enterId_value(rs2asmParser.Id_valueContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#id_value}. + * @param ctx the parse tree + */ + void exitId_value(rs2asmParser.Id_valueContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#int_stack_value}. + * @param ctx the parse tree + */ + void enterInt_stack_value(rs2asmParser.Int_stack_valueContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#int_stack_value}. + * @param ctx the parse tree + */ + void exitInt_stack_value(rs2asmParser.Int_stack_valueContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#string_stack_value}. + * @param ctx the parse tree + */ + void enterString_stack_value(rs2asmParser.String_stack_valueContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#string_stack_value}. + * @param ctx the parse tree + */ + void exitString_stack_value(rs2asmParser.String_stack_valueContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#int_var_value}. + * @param ctx the parse tree + */ + void enterInt_var_value(rs2asmParser.Int_var_valueContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#int_var_value}. + * @param ctx the parse tree + */ + void exitInt_var_value(rs2asmParser.Int_var_valueContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#string_var_value}. + * @param ctx the parse tree + */ + void enterString_var_value(rs2asmParser.String_var_valueContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#string_var_value}. + * @param ctx the parse tree + */ + void exitString_var_value(rs2asmParser.String_var_valueContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#line}. + * @param ctx the parse tree + */ + void enterLine(rs2asmParser.LineContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#line}. + * @param ctx the parse tree + */ + void exitLine(rs2asmParser.LineContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#instruction}. + * @param ctx the parse tree + */ + void enterInstruction(rs2asmParser.InstructionContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#instruction}. + * @param ctx the parse tree + */ + void exitInstruction(rs2asmParser.InstructionContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#label}. + * @param ctx the parse tree + */ + void enterLabel(rs2asmParser.LabelContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#label}. + * @param ctx the parse tree + */ + void exitLabel(rs2asmParser.LabelContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#instruction_name}. + * @param ctx the parse tree + */ + void enterInstruction_name(rs2asmParser.Instruction_nameContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#instruction_name}. + * @param ctx the parse tree + */ + void exitInstruction_name(rs2asmParser.Instruction_nameContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#name_string}. + * @param ctx the parse tree + */ + void enterName_string(rs2asmParser.Name_stringContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#name_string}. + * @param ctx the parse tree + */ + void exitName_string(rs2asmParser.Name_stringContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#name_opcode}. + * @param ctx the parse tree + */ + void enterName_opcode(rs2asmParser.Name_opcodeContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#name_opcode}. + * @param ctx the parse tree + */ + void exitName_opcode(rs2asmParser.Name_opcodeContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#instruction_operand}. + * @param ctx the parse tree + */ + void enterInstruction_operand(rs2asmParser.Instruction_operandContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#instruction_operand}. + * @param ctx the parse tree + */ + void exitInstruction_operand(rs2asmParser.Instruction_operandContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#operand_int}. + * @param ctx the parse tree + */ + void enterOperand_int(rs2asmParser.Operand_intContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#operand_int}. + * @param ctx the parse tree + */ + void exitOperand_int(rs2asmParser.Operand_intContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#operand_qstring}. + * @param ctx the parse tree + */ + void enterOperand_qstring(rs2asmParser.Operand_qstringContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#operand_qstring}. + * @param ctx the parse tree + */ + void exitOperand_qstring(rs2asmParser.Operand_qstringContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#operand_label}. + * @param ctx the parse tree + */ + void enterOperand_label(rs2asmParser.Operand_labelContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#operand_label}. + * @param ctx the parse tree + */ + void exitOperand_label(rs2asmParser.Operand_labelContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#switch_lookup}. + * @param ctx the parse tree + */ + void enterSwitch_lookup(rs2asmParser.Switch_lookupContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#switch_lookup}. + * @param ctx the parse tree + */ + void exitSwitch_lookup(rs2asmParser.Switch_lookupContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#switch_key}. + * @param ctx the parse tree + */ + void enterSwitch_key(rs2asmParser.Switch_keyContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#switch_key}. + * @param ctx the parse tree + */ + void exitSwitch_key(rs2asmParser.Switch_keyContext ctx); + /** + * Enter a parse tree produced by {@link rs2asmParser#switch_value}. + * @param ctx the parse tree + */ + void enterSwitch_value(rs2asmParser.Switch_valueContext ctx); + /** + * Exit a parse tree produced by {@link rs2asmParser#switch_value}. + * @param ctx the parse tree + */ + void exitSwitch_value(rs2asmParser.Switch_valueContext ctx); +} \ No newline at end of file diff --git a/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmParser.java b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmParser.java new file mode 100644 index 0000000000..4617df119c --- /dev/null +++ b/cache/src/main/java/net/runelite/cache/script/assembler/rs2asmParser.java @@ -0,0 +1,1333 @@ +// Generated from net\runelite\cache\script\assembler\rs2asm.g4 by ANTLR 4.6 +package net.runelite.cache.script.assembler; +import org.antlr.v4.runtime.NoViableAltException; +import org.antlr.v4.runtime.Parser; +import org.antlr.v4.runtime.ParserRuleContext; +import org.antlr.v4.runtime.RecognitionException; +import org.antlr.v4.runtime.RuntimeMetaData; +import org.antlr.v4.runtime.TokenStream; +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.ParserATNSimulator; +import org.antlr.v4.runtime.atn.PredictionContextCache; +import org.antlr.v4.runtime.dfa.DFA; +import java.util.List; +import org.antlr.v4.runtime.tree.ParseTreeListener; +import org.antlr.v4.runtime.tree.TerminalNode; + +@SuppressWarnings({"all", "warnings", "unchecked", "unused", "cast"}) +public class rs2asmParser extends Parser +{ + static { RuntimeMetaData.checkVersion("4.6", RuntimeMetaData.VERSION); } + + protected static final DFA[] _decisionToDFA; + protected static final PredictionContextCache _sharedContextCache = + new PredictionContextCache(); + public static final int + T__0=1, T__1=2, T__2=3, T__3=4, T__4=5, T__5=6, NEWLINE=7, INT=8, QSTRING=9, + IDENTIFIER=10, COMMENT=11, WS=12; + public static final int + RULE_prog = 0, RULE_header = 1, RULE_id = 2, RULE_int_stack_count = 3, + RULE_string_stack_count = 4, RULE_int_var_count = 5, RULE_string_var_count = 6, + RULE_id_value = 7, RULE_int_stack_value = 8, RULE_string_stack_value = 9, + RULE_int_var_value = 10, RULE_string_var_value = 11, RULE_line = 12, RULE_instruction = 13, + RULE_label = 14, RULE_instruction_name = 15, RULE_name_string = 16, RULE_name_opcode = 17, + RULE_instruction_operand = 18, RULE_operand_int = 19, RULE_operand_qstring = 20, + RULE_operand_label = 21, RULE_switch_lookup = 22, RULE_switch_key = 23, + RULE_switch_value = 24; + public static final String[] ruleNames = { + "prog", "header", "id", "int_stack_count", "string_stack_count", "int_var_count", + "string_var_count", "id_value", "int_stack_value", "string_stack_value", + "int_var_value", "string_var_value", "line", "instruction", "label", "instruction_name", + "name_string", "name_opcode", "instruction_operand", "operand_int", "operand_qstring", + "operand_label", "switch_lookup", "switch_key", "switch_value" + }; + + private static final String[] _LITERAL_NAMES = { + null, "'.id '", "'.int_stack_count '", "'.string_stack_count '", "'.int_var_count '", + "'.string_var_count '", "':'" + }; + private static final String[] _SYMBOLIC_NAMES = { + null, null, null, null, null, null, null, "NEWLINE", "INT", "QSTRING", + "IDENTIFIER", "COMMENT", "WS" + }; + 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] = ""; + } + } + } + + @Override + @Deprecated + public String[] getTokenNames() { + return tokenNames; + } + + @Override + + public Vocabulary getVocabulary() { + return VOCABULARY; + } + + @Override + public String getGrammarFileName() { return "rs2asm.g4"; } + + @Override + public String[] getRuleNames() { return ruleNames; } + + @Override + public String getSerializedATN() { return _serializedATN; } + + @Override + public ATN getATN() { return _ATN; } + + public rs2asmParser(TokenStream input) { + super(input); + _interp = new ParserATNSimulator(this,_ATN,_decisionToDFA,_sharedContextCache); + } + public static class ProgContext extends ParserRuleContext + { + public List NEWLINE() { return getTokens(rs2asmParser.NEWLINE); } + public TerminalNode NEWLINE(int i) { + return getToken(rs2asmParser.NEWLINE, i); + } + public List header() { + return getRuleContexts(HeaderContext.class); + } + public HeaderContext header(int i) { + return getRuleContext(HeaderContext.class,i); + } + public List line() { + return getRuleContexts(LineContext.class); + } + public LineContext line(int i) { + return getRuleContext(LineContext.class,i); + } + public ProgContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_prog; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterProg(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitProg(this); + } + } + + public final ProgContext prog() throws RecognitionException + { + ProgContext _localctx = new ProgContext(_ctx, getState()); + enterRule(_localctx, 0, RULE_prog); + int _la; + try { + enterOuterAlt(_localctx, 1); + { + setState(53); + _errHandler.sync(this); + _la = _input.LA(1); + while (_la==NEWLINE) { + { + { + setState(50); + match(NEWLINE); + } + } + setState(55); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(64); + _errHandler.sync(this); + _la = _input.LA(1); + while ((((_la) & ~0x3f) == 0 && ((1L << _la) & ((1L << T__0) | (1L << T__1) | (1L << T__2) | (1L << T__3) | (1L << T__4))) != 0)) { + { + { + setState(56); + header(); + setState(58); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(57); + match(NEWLINE); + } + } + setState(60); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==NEWLINE ); + } + } + setState(66); + _errHandler.sync(this); + _la = _input.LA(1); + } + setState(73); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(67); + line(); + setState(69); + _errHandler.sync(this); + _la = _input.LA(1); + do { + { + { + setState(68); + match(NEWLINE); + } + } + setState(71); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==NEWLINE ); + } + } + setState(75); + _errHandler.sync(this); + _la = _input.LA(1); + } while ( _la==INT || _la==IDENTIFIER ); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class HeaderContext extends ParserRuleContext { + public IdContext id() { + return getRuleContext(IdContext.class,0); + } + public Int_stack_countContext int_stack_count() { + return getRuleContext(Int_stack_countContext.class,0); + } + public String_stack_countContext string_stack_count() { + return getRuleContext(String_stack_countContext.class,0); + } + public Int_var_countContext int_var_count() { + return getRuleContext(Int_var_countContext.class,0); + } + public String_var_countContext string_var_count() { + return getRuleContext(String_var_countContext.class,0); + } + public HeaderContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_header; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterHeader(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitHeader(this); + } + } + + public final HeaderContext header() throws RecognitionException { + HeaderContext _localctx = new HeaderContext(_ctx, getState()); + enterRule(_localctx, 2, RULE_header); + try { + setState(82); + _errHandler.sync(this); + switch (_input.LA(1)) { + case T__0: + enterOuterAlt(_localctx, 1); + { + setState(77); + id(); + } + break; + case T__1: + enterOuterAlt(_localctx, 2); + { + setState(78); + int_stack_count(); + } + break; + case T__2: + enterOuterAlt(_localctx, 3); + { + setState(79); + string_stack_count(); + } + break; + case T__3: + enterOuterAlt(_localctx, 4); + { + setState(80); + int_var_count(); + } + break; + case T__4: + enterOuterAlt(_localctx, 5); + { + setState(81); + string_var_count(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class IdContext extends ParserRuleContext { + public Id_valueContext id_value() { + return getRuleContext(Id_valueContext.class,0); + } + public IdContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_id; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterId(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitId(this); + } + } + + public final IdContext id() throws RecognitionException { + IdContext _localctx = new IdContext(_ctx, getState()); + enterRule(_localctx, 4, RULE_id); + try { + enterOuterAlt(_localctx, 1); + { + setState(84); + match(T__0); + setState(85); + id_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Int_stack_countContext extends ParserRuleContext { + public Int_stack_valueContext int_stack_value() { + return getRuleContext(Int_stack_valueContext.class,0); + } + public Int_stack_countContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_int_stack_count; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInt_stack_count(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInt_stack_count(this); + } + } + + public final Int_stack_countContext int_stack_count() throws RecognitionException { + Int_stack_countContext _localctx = new Int_stack_countContext(_ctx, getState()); + enterRule(_localctx, 6, RULE_int_stack_count); + try { + enterOuterAlt(_localctx, 1); + { + setState(87); + match(T__1); + setState(88); + int_stack_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class String_stack_countContext extends ParserRuleContext { + public String_stack_valueContext string_stack_value() { + return getRuleContext(String_stack_valueContext.class,0); + } + public String_stack_countContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_string_stack_count; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterString_stack_count(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitString_stack_count(this); + } + } + + public final String_stack_countContext string_stack_count() throws RecognitionException { + String_stack_countContext _localctx = new String_stack_countContext(_ctx, getState()); + enterRule(_localctx, 8, RULE_string_stack_count); + try { + enterOuterAlt(_localctx, 1); + { + setState(90); + match(T__2); + setState(91); + string_stack_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Int_var_countContext extends ParserRuleContext { + public Int_var_valueContext int_var_value() { + return getRuleContext(Int_var_valueContext.class,0); + } + public Int_var_countContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_int_var_count; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInt_var_count(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInt_var_count(this); + } + } + + public final Int_var_countContext int_var_count() throws RecognitionException { + Int_var_countContext _localctx = new Int_var_countContext(_ctx, getState()); + enterRule(_localctx, 10, RULE_int_var_count); + try { + enterOuterAlt(_localctx, 1); + { + setState(93); + match(T__3); + setState(94); + int_var_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class String_var_countContext extends ParserRuleContext { + public String_var_valueContext string_var_value() { + return getRuleContext(String_var_valueContext.class,0); + } + public String_var_countContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_string_var_count; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterString_var_count(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitString_var_count(this); + } + } + + public final String_var_countContext string_var_count() throws RecognitionException { + String_var_countContext _localctx = new String_var_countContext(_ctx, getState()); + enterRule(_localctx, 12, RULE_string_var_count); + try { + enterOuterAlt(_localctx, 1); + { + setState(96); + match(T__4); + setState(97); + string_var_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Id_valueContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public Id_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_id_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterId_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitId_value(this); + } + } + + public final Id_valueContext id_value() throws RecognitionException { + Id_valueContext _localctx = new Id_valueContext(_ctx, getState()); + enterRule(_localctx, 14, RULE_id_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(99); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Int_stack_valueContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public Int_stack_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_int_stack_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInt_stack_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInt_stack_value(this); + } + } + + public final Int_stack_valueContext int_stack_value() throws RecognitionException { + Int_stack_valueContext _localctx = new Int_stack_valueContext(_ctx, getState()); + enterRule(_localctx, 16, RULE_int_stack_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(101); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class String_stack_valueContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public String_stack_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_string_stack_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterString_stack_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitString_stack_value(this); + } + } + + public final String_stack_valueContext string_stack_value() throws RecognitionException { + String_stack_valueContext _localctx = new String_stack_valueContext(_ctx, getState()); + enterRule(_localctx, 18, RULE_string_stack_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(103); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Int_var_valueContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public Int_var_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_int_var_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInt_var_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInt_var_value(this); + } + } + + public final Int_var_valueContext int_var_value() throws RecognitionException { + Int_var_valueContext _localctx = new Int_var_valueContext(_ctx, getState()); + enterRule(_localctx, 20, RULE_int_var_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(105); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class String_var_valueContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public String_var_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_string_var_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterString_var_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitString_var_value(this); + } + } + + public final String_var_valueContext string_var_value() throws RecognitionException { + String_var_valueContext _localctx = new String_var_valueContext(_ctx, getState()); + enterRule(_localctx, 22, RULE_string_var_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(107); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LineContext extends ParserRuleContext { + public InstructionContext instruction() { + return getRuleContext(InstructionContext.class,0); + } + public LabelContext label() { + return getRuleContext(LabelContext.class,0); + } + public Switch_lookupContext switch_lookup() { + return getRuleContext(Switch_lookupContext.class,0); + } + public LineContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_line; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterLine(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitLine(this); + } + } + + public final LineContext line() throws RecognitionException { + LineContext _localctx = new LineContext(_ctx, getState()); + enterRule(_localctx, 24, RULE_line); + try { + setState(112); + _errHandler.sync(this); + switch ( getInterpreter().adaptivePredict(_input,6,_ctx) ) { + case 1: + enterOuterAlt(_localctx, 1); + { + setState(109); + instruction(); + } + break; + case 2: + enterOuterAlt(_localctx, 2); + { + setState(110); + label(); + } + break; + case 3: + enterOuterAlt(_localctx, 3); + { + setState(111); + switch_lookup(); + } + break; + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class InstructionContext extends ParserRuleContext { + public Instruction_nameContext instruction_name() { + return getRuleContext(Instruction_nameContext.class,0); + } + public Instruction_operandContext instruction_operand() { + return getRuleContext(Instruction_operandContext.class,0); + } + public InstructionContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_instruction; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInstruction(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInstruction(this); + } + } + + public final InstructionContext instruction() throws RecognitionException { + InstructionContext _localctx = new InstructionContext(_ctx, getState()); + enterRule(_localctx, 26, RULE_instruction); + try { + enterOuterAlt(_localctx, 1); + { + setState(114); + instruction_name(); + setState(115); + instruction_operand(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class LabelContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(rs2asmParser.IDENTIFIER, 0); } + public LabelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_label; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterLabel(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitLabel(this); + } + } + + public final LabelContext label() throws RecognitionException { + LabelContext _localctx = new LabelContext(_ctx, getState()); + enterRule(_localctx, 28, RULE_label); + try { + enterOuterAlt(_localctx, 1); + { + setState(117); + match(IDENTIFIER); + setState(118); + match(T__5); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Instruction_nameContext extends ParserRuleContext { + public Name_stringContext name_string() { + return getRuleContext(Name_stringContext.class,0); + } + public Name_opcodeContext name_opcode() { + return getRuleContext(Name_opcodeContext.class,0); + } + public Instruction_nameContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_instruction_name; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInstruction_name(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInstruction_name(this); + } + } + + public final Instruction_nameContext instruction_name() throws RecognitionException { + Instruction_nameContext _localctx = new Instruction_nameContext(_ctx, getState()); + enterRule(_localctx, 30, RULE_instruction_name); + try { + setState(122); + _errHandler.sync(this); + switch (_input.LA(1)) { + case IDENTIFIER: + enterOuterAlt(_localctx, 1); + { + setState(120); + name_string(); + } + break; + case INT: + enterOuterAlt(_localctx, 2); + { + setState(121); + name_opcode(); + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Name_stringContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(rs2asmParser.IDENTIFIER, 0); } + public Name_stringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_name_string; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterName_string(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitName_string(this); + } + } + + public final Name_stringContext name_string() throws RecognitionException { + Name_stringContext _localctx = new Name_stringContext(_ctx, getState()); + enterRule(_localctx, 32, RULE_name_string); + try { + enterOuterAlt(_localctx, 1); + { + setState(124); + match(IDENTIFIER); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Name_opcodeContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public Name_opcodeContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_name_opcode; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterName_opcode(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitName_opcode(this); + } + } + + public final Name_opcodeContext name_opcode() throws RecognitionException { + Name_opcodeContext _localctx = new Name_opcodeContext(_ctx, getState()); + enterRule(_localctx, 34, RULE_name_opcode); + try { + enterOuterAlt(_localctx, 1); + { + setState(126); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Instruction_operandContext extends ParserRuleContext { + public Operand_intContext operand_int() { + return getRuleContext(Operand_intContext.class,0); + } + public Operand_qstringContext operand_qstring() { + return getRuleContext(Operand_qstringContext.class,0); + } + public Operand_labelContext operand_label() { + return getRuleContext(Operand_labelContext.class,0); + } + public Instruction_operandContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_instruction_operand; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterInstruction_operand(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitInstruction_operand(this); + } + } + + public final Instruction_operandContext instruction_operand() throws RecognitionException { + Instruction_operandContext _localctx = new Instruction_operandContext(_ctx, getState()); + enterRule(_localctx, 36, RULE_instruction_operand); + try { + setState(132); + _errHandler.sync(this); + switch (_input.LA(1)) { + case INT: + enterOuterAlt(_localctx, 1); + { + setState(128); + operand_int(); + } + break; + case QSTRING: + enterOuterAlt(_localctx, 2); + { + setState(129); + operand_qstring(); + } + break; + case IDENTIFIER: + enterOuterAlt(_localctx, 3); + { + setState(130); + operand_label(); + } + break; + case NEWLINE: + enterOuterAlt(_localctx, 4); + { + } + break; + default: + throw new NoViableAltException(this); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Operand_intContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public Operand_intContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_operand_int; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterOperand_int(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitOperand_int(this); + } + } + + public final Operand_intContext operand_int() throws RecognitionException { + Operand_intContext _localctx = new Operand_intContext(_ctx, getState()); + enterRule(_localctx, 38, RULE_operand_int); + try { + enterOuterAlt(_localctx, 1); + { + setState(134); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Operand_qstringContext extends ParserRuleContext { + public TerminalNode QSTRING() { return getToken(rs2asmParser.QSTRING, 0); } + public Operand_qstringContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_operand_qstring; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterOperand_qstring(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitOperand_qstring(this); + } + } + + public final Operand_qstringContext operand_qstring() throws RecognitionException { + Operand_qstringContext _localctx = new Operand_qstringContext(_ctx, getState()); + enterRule(_localctx, 40, RULE_operand_qstring); + try { + enterOuterAlt(_localctx, 1); + { + setState(136); + match(QSTRING); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Operand_labelContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(rs2asmParser.IDENTIFIER, 0); } + public Operand_labelContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_operand_label; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterOperand_label(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitOperand_label(this); + } + } + + public final Operand_labelContext operand_label() throws RecognitionException { + Operand_labelContext _localctx = new Operand_labelContext(_ctx, getState()); + enterRule(_localctx, 42, RULE_operand_label); + try { + enterOuterAlt(_localctx, 1); + { + setState(138); + match(IDENTIFIER); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Switch_lookupContext extends ParserRuleContext { + public Switch_keyContext switch_key() { + return getRuleContext(Switch_keyContext.class,0); + } + public Switch_valueContext switch_value() { + return getRuleContext(Switch_valueContext.class,0); + } + public Switch_lookupContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switch_lookup; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterSwitch_lookup(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitSwitch_lookup(this); + } + } + + public final Switch_lookupContext switch_lookup() throws RecognitionException { + Switch_lookupContext _localctx = new Switch_lookupContext(_ctx, getState()); + enterRule(_localctx, 44, RULE_switch_lookup); + try { + enterOuterAlt(_localctx, 1); + { + setState(140); + switch_key(); + setState(141); + match(T__5); + setState(142); + switch_value(); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Switch_keyContext extends ParserRuleContext { + public TerminalNode INT() { return getToken(rs2asmParser.INT, 0); } + public Switch_keyContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switch_key; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterSwitch_key(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitSwitch_key(this); + } + } + + public final Switch_keyContext switch_key() throws RecognitionException { + Switch_keyContext _localctx = new Switch_keyContext(_ctx, getState()); + enterRule(_localctx, 46, RULE_switch_key); + try { + enterOuterAlt(_localctx, 1); + { + setState(144); + match(INT); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static class Switch_valueContext extends ParserRuleContext { + public TerminalNode IDENTIFIER() { return getToken(rs2asmParser.IDENTIFIER, 0); } + public Switch_valueContext(ParserRuleContext parent, int invokingState) { + super(parent, invokingState); + } + @Override public int getRuleIndex() { return RULE_switch_value; } + @Override + public void enterRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).enterSwitch_value(this); + } + @Override + public void exitRule(ParseTreeListener listener) { + if ( listener instanceof rs2asmListener ) ((rs2asmListener)listener).exitSwitch_value(this); + } + } + + public final Switch_valueContext switch_value() throws RecognitionException { + Switch_valueContext _localctx = new Switch_valueContext(_ctx, getState()); + enterRule(_localctx, 48, RULE_switch_value); + try { + enterOuterAlt(_localctx, 1); + { + setState(146); + match(IDENTIFIER); + } + } + catch (RecognitionException re) { + _localctx.exception = re; + _errHandler.reportError(this, re); + _errHandler.recover(this, re); + } + finally { + exitRule(); + } + return _localctx; + } + + public static final String _serializedATN = + "\3\u0430\ud6d1\u8206\uad2d\u4417\uaef1\u8d80\uaadd\3\16\u0097\4\2\t\2"+ + "\4\3\t\3\4\4\t\4\4\5\t\5\4\6\t\6\4\7\t\7\4\b\t\b\4\t\t\t\4\n\t\n\4\13"+ + "\t\13\4\f\t\f\4\r\t\r\4\16\t\16\4\17\t\17\4\20\t\20\4\21\t\21\4\22\t\22"+ + "\4\23\t\23\4\24\t\24\4\25\t\25\4\26\t\26\4\27\t\27\4\30\t\30\4\31\t\31"+ + "\4\32\t\32\3\2\7\2\66\n\2\f\2\16\29\13\2\3\2\3\2\6\2=\n\2\r\2\16\2>\7"+ + "\2A\n\2\f\2\16\2D\13\2\3\2\3\2\6\2H\n\2\r\2\16\2I\6\2L\n\2\r\2\16\2M\3"+ + "\3\3\3\3\3\3\3\3\3\5\3U\n\3\3\4\3\4\3\4\3\5\3\5\3\5\3\6\3\6\3\6\3\7\3"+ + "\7\3\7\3\b\3\b\3\b\3\t\3\t\3\n\3\n\3\13\3\13\3\f\3\f\3\r\3\r\3\16\3\16"+ + "\3\16\5\16s\n\16\3\17\3\17\3\17\3\20\3\20\3\20\3\21\3\21\5\21}\n\21\3"+ + "\22\3\22\3\23\3\23\3\24\3\24\3\24\3\24\5\24\u0087\n\24\3\25\3\25\3\26"+ + "\3\26\3\27\3\27\3\30\3\30\3\30\3\30\3\31\3\31\3\32\3\32\3\32\2\2\33\2"+ + "\4\6\b\n\f\16\20\22\24\26\30\32\34\36 \"$&(*,.\60\62\2\2\u008c\2\67\3"+ + "\2\2\2\4T\3\2\2\2\6V\3\2\2\2\bY\3\2\2\2\n\\\3\2\2\2\f_\3\2\2\2\16b\3\2"+ + "\2\2\20e\3\2\2\2\22g\3\2\2\2\24i\3\2\2\2\26k\3\2\2\2\30m\3\2\2\2\32r\3"+ + "\2\2\2\34t\3\2\2\2\36w\3\2\2\2 |\3\2\2\2\"~\3\2\2\2$\u0080\3\2\2\2&\u0086"+ + "\3\2\2\2(\u0088\3\2\2\2*\u008a\3\2\2\2,\u008c\3\2\2\2.\u008e\3\2\2\2\60"+ + "\u0092\3\2\2\2\62\u0094\3\2\2\2\64\66\7\t\2\2\65\64\3\2\2\2\669\3\2\2"+ + "\2\67\65\3\2\2\2\678\3\2\2\28B\3\2\2\29\67\3\2\2\2:<\5\4\3\2;=\7\t\2\2"+ + "<;\3\2\2\2=>\3\2\2\2><\3\2\2\2>?\3\2\2\2?A\3\2\2\2@:\3\2\2\2AD\3\2\2\2"+ + "B@\3\2\2\2BC\3\2\2\2CK\3\2\2\2DB\3\2\2\2EG\5\32\16\2FH\7\t\2\2GF\3\2\2"+ + "\2HI\3\2\2\2IG\3\2\2\2IJ\3\2\2\2JL\3\2\2\2KE\3\2\2\2LM\3\2\2\2MK\3\2\2"+ + "\2MN\3\2\2\2N\3\3\2\2\2OU\5\6\4\2PU\5\b\5\2QU\5\n\6\2RU\5\f\7\2SU\5\16"+ + "\b\2TO\3\2\2\2TP\3\2\2\2TQ\3\2\2\2TR\3\2\2\2TS\3\2\2\2U\5\3\2\2\2VW\7"+ + "\3\2\2WX\5\20\t\2X\7\3\2\2\2YZ\7\4\2\2Z[\5\22\n\2[\t\3\2\2\2\\]\7\5\2"+ + "\2]^\5\24\13\2^\13\3\2\2\2_`\7\6\2\2`a\5\26\f\2a\r\3\2\2\2bc\7\7\2\2c"+ + "d\5\30\r\2d\17\3\2\2\2ef\7\n\2\2f\21\3\2\2\2gh\7\n\2\2h\23\3\2\2\2ij\7"+ + "\n\2\2j\25\3\2\2\2kl\7\n\2\2l\27\3\2\2\2mn\7\n\2\2n\31\3\2\2\2os\5\34"+ + "\17\2ps\5\36\20\2qs\5.\30\2ro\3\2\2\2rp\3\2\2\2rq\3\2\2\2s\33\3\2\2\2"+ + "tu\5 \21\2uv\5&\24\2v\35\3\2\2\2wx\7\f\2\2xy\7\b\2\2y\37\3\2\2\2z}\5\""+ + "\22\2{}\5$\23\2|z\3\2\2\2|{\3\2\2\2}!\3\2\2\2~\177\7\f\2\2\177#\3\2\2"+ + "\2\u0080\u0081\7\n\2\2\u0081%\3\2\2\2\u0082\u0087\5(\25\2\u0083\u0087"+ + "\5*\26\2\u0084\u0087\5,\27\2\u0085\u0087\3\2\2\2\u0086\u0082\3\2\2\2\u0086"+ + "\u0083\3\2\2\2\u0086\u0084\3\2\2\2\u0086\u0085\3\2\2\2\u0087\'\3\2\2\2"+ + "\u0088\u0089\7\n\2\2\u0089)\3\2\2\2\u008a\u008b\7\13\2\2\u008b+\3\2\2"+ + "\2\u008c\u008d\7\f\2\2\u008d-\3\2\2\2\u008e\u008f\5\60\31\2\u008f\u0090"+ + "\7\b\2\2\u0090\u0091\5\62\32\2\u0091/\3\2\2\2\u0092\u0093\7\n\2\2\u0093"+ + "\61\3\2\2\2\u0094\u0095\7\f\2\2\u0095\63\3\2\2\2\13\67>BIMTr|\u0086"; + 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); + } + } +} \ No newline at end of file diff --git a/cache/src/main/java/net/runelite/cache/script/rs2asm.tokens b/cache/src/main/java/net/runelite/cache/script/rs2asm.tokens new file mode 100644 index 0000000000..de505a0dff --- /dev/null +++ b/cache/src/main/java/net/runelite/cache/script/rs2asm.tokens @@ -0,0 +1,18 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +NEWLINE=7 +INT=8 +QSTRING=9 +IDENTIFIER=10 +COMMENT=11 +WS=12 +'.id '=1 +'.int_stack_count '=2 +'.string_stack_count '=3 +'.int_var_count '=4 +'.string_var_count '=5 +':'=6 diff --git a/cache/src/main/java/net/runelite/cache/script/rs2asmLexer.tokens b/cache/src/main/java/net/runelite/cache/script/rs2asmLexer.tokens new file mode 100644 index 0000000000..de505a0dff --- /dev/null +++ b/cache/src/main/java/net/runelite/cache/script/rs2asmLexer.tokens @@ -0,0 +1,18 @@ +T__0=1 +T__1=2 +T__2=3 +T__3=4 +T__4=5 +T__5=6 +NEWLINE=7 +INT=8 +QSTRING=9 +IDENTIFIER=10 +COMMENT=11 +WS=12 +'.id '=1 +'.int_stack_count '=2 +'.string_stack_count '=3 +'.int_var_count '=4 +'.string_var_count '=5 +':'=6 diff --git a/cache/src/test/java/net/runelite/cache/item/ItemSpriteFactoryTest.java b/cache/src/test/java/net/runelite/cache/item/ItemSpriteFactoryTest.java deleted file mode 100644 index 30fb140a1b..0000000000 --- a/cache/src/test/java/net/runelite/cache/item/ItemSpriteFactoryTest.java +++ /dev/null @@ -1,118 +0,0 @@ -/* - * Copyright (c) 2018, Adam - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions are met: - * - * 1. Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND - * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ -package net.runelite.cache.item; - -import java.awt.image.BufferedImage; -import java.io.File; -import java.io.IOException; -import javax.imageio.ImageIO; -import lombok.extern.slf4j.Slf4j; -import net.runelite.cache.IndexType; -import net.runelite.cache.ItemManager; -import net.runelite.cache.SpriteManager; -import net.runelite.cache.StoreLocation; -import net.runelite.cache.TextureManager; -import net.runelite.cache.definitions.ItemDefinition; -import net.runelite.cache.definitions.ModelDefinition; -import net.runelite.cache.definitions.loaders.ModelLoader; -import net.runelite.cache.definitions.providers.ModelProvider; -import net.runelite.cache.fs.Archive; -import net.runelite.cache.fs.Index; -import net.runelite.cache.fs.Store; -import org.junit.Ignore; -import org.junit.Rule; -import org.junit.Test; -import org.junit.rules.TemporaryFolder; - -@Slf4j -public class ItemSpriteFactoryTest -{ - @Rule - public TemporaryFolder folder = StoreLocation.getTemporaryFolder(); - - @Test - @Ignore - public void test() throws IOException - { - File base = StoreLocation.LOCATION, - outDir = folder.newFolder(); - - int count = 0; - - try (Store store = new Store(base)) - { - store.load(); - - ItemManager itemManager = new ItemManager(store); - itemManager.load(); - - ModelProvider modelProvider = new ModelProvider() - { - @Override - public ModelDefinition provide(int modelId) throws IOException - { - Index models = store.getIndex(IndexType.MODELS); - Archive archive = models.getArchive(modelId); - - byte[] data = archive.decompress(store.getStorage().loadArchive(archive)); - ModelDefinition inventoryModel = new ModelLoader().load(modelId, data); - return inventoryModel; - } - }; - - SpriteManager spriteManager = new SpriteManager(store); - spriteManager.load(); - - TextureManager textureManager = new TextureManager(store); - textureManager.load(); - - for (ItemDefinition itemDef : itemManager.getItems()) - { - if (itemDef.name == null || itemDef.name.equalsIgnoreCase("null")) - { - continue; - } - - try - { - BufferedImage sprite = ItemSpriteFactory.createSprite(itemManager, modelProvider, spriteManager, textureManager, - itemDef.id, 1, 1, 3153952, false); - - File out = new File(outDir, itemDef.id + ".png"); - BufferedImage img = sprite; - ImageIO.write(img, "PNG", out); - - ++count; - } - catch (Exception ex) - { - log.warn("error dumping item {}", itemDef.id, ex); - } - } - } - - log.info("Dumped {} item images to {}", count, outDir); - } -} \ No newline at end of file diff --git a/deobfuscator/build.gradle b/deobfuscator/build.gradle new file mode 100644 index 0000000000..7ee533ad4a --- /dev/null +++ b/deobfuscator/build.gradle @@ -0,0 +1,22 @@ + +description = 'Deobfuscator' +dependencies { + compile project(':runelite-api') + compile project(':runescape-api') + compile group: 'net.runelite', name: 'fernflower', version:'20171017' + compile group: 'com.google.guava', name: 'guava', version:'28.0-jre' + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'com.google.code.gson', name: 'gson', version:'2.8.5' + compile group: 'org.ow2.asm', name: 'asm-debug-all', version:'5.2' + runtime group: 'org.slf4j', name: 'slf4j-simple', version:'1.7.26' + testCompile project(':rs-client') + testCompile group: 'net.runelite.rs', name: 'vanilla', version:'181' + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.mockito', name: 'mockito-all', version:'1.10.19' +} + +task packageTests(type: Jar) { + from sourceSets.test.output + classifier = 'tests' +} +artifacts.archives packageTests diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties new file mode 100644 index 0000000000..290541c738 --- /dev/null +++ b/gradle/wrapper/gradle-wrapper.properties @@ -0,0 +1,5 @@ +distributionBase=GRADLE_USER_HOME +distributionPath=wrapper/dists +distributionUrl=https\://services.gradle.org/distributions/gradle-4.10.3-bin.zip +zipStoreBase=GRADLE_USER_HOME +zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew new file mode 100644 index 0000000000..cccdd3d517 --- /dev/null +++ b/gradlew @@ -0,0 +1,172 @@ +#!/usr/bin/env sh + +############################################################################## +## +## Gradle start up script for UN*X +## +############################################################################## + +# Attempt to set APP_HOME +# Resolve links: $0 may be a link +PRG="$0" +# Need this for relative symlinks. +while [ -h "$PRG" ] ; do + ls=`ls -ld "$PRG"` + link=`expr "$ls" : '.*-> \(.*\)$'` + if expr "$link" : '/.*' > /dev/null; then + PRG="$link" + else + PRG=`dirname "$PRG"`"/$link" + fi +done +SAVED="`pwd`" +cd "`dirname \"$PRG\"`/" >/dev/null +APP_HOME="`pwd -P`" +cd "$SAVED" >/dev/null + +APP_NAME="Gradle" +APP_BASE_NAME=`basename "$0"` + +# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +DEFAULT_JVM_OPTS="" + +# Use the maximum available, or set MAX_FD != -1 to use that value. +MAX_FD="maximum" + +warn () { + echo "$*" +} + +die () { + echo + echo "$*" + echo + exit 1 +} + +# OS specific support (must be 'true' or 'false'). +cygwin=false +msys=false +darwin=false +nonstop=false +case "`uname`" in + CYGWIN* ) + cygwin=true + ;; + Darwin* ) + darwin=true + ;; + MINGW* ) + msys=true + ;; + NONSTOP* ) + nonstop=true + ;; +esac + +CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar + +# Determine the Java command to use to start the JVM. +if [ -n "$JAVA_HOME" ] ; then + if [ -x "$JAVA_HOME/jre/sh/java" ] ; then + # IBM's JDK on AIX uses strange locations for the executables + JAVACMD="$JAVA_HOME/jre/sh/java" + else + JAVACMD="$JAVA_HOME/bin/java" + fi + if [ ! -x "$JAVACMD" ] ; then + die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." + fi +else + JAVACMD="java" + which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. + +Please set the JAVA_HOME variable in your environment to match the +location of your Java installation." +fi + +# Increase the maximum file descriptors if we can. +if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then + MAX_FD_LIMIT=`ulimit -H -n` + if [ $? -eq 0 ] ; then + if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then + MAX_FD="$MAX_FD_LIMIT" + fi + ulimit -n $MAX_FD + if [ $? -ne 0 ] ; then + warn "Could not set maximum file descriptor limit: $MAX_FD" + fi + else + warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" + fi +fi + +# For Darwin, add options to specify how the application appears in the dock +if $darwin; then + GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" +fi + +# For Cygwin, switch paths to Windows format before running java +if $cygwin ; then + APP_HOME=`cygpath --path --mixed "$APP_HOME"` + CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` + JAVACMD=`cygpath --unix "$JAVACMD"` + + # We build the pattern for arguments to be converted via cygpath + ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` + SEP="" + for dir in $ROOTDIRSRAW ; do + ROOTDIRS="$ROOTDIRS$SEP$dir" + SEP="|" + done + OURCYGPATTERN="(^($ROOTDIRS))" + # Add a user-defined pattern to the cygpath arguments + if [ "$GRADLE_CYGPATTERN" != "" ] ; then + OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" + fi + # Now convert the arguments - kludge to limit ourselves to /bin/sh + i=0 + for arg in "$@" ; do + CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` + CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option + + if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition + eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` + else + eval `echo args$i`="\"$arg\"" + fi + i=$((i+1)) + done + case $i in + (0) set -- ;; + (1) set -- "$args0" ;; + (2) set -- "$args0" "$args1" ;; + (3) set -- "$args0" "$args1" "$args2" ;; + (4) set -- "$args0" "$args1" "$args2" "$args3" ;; + (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; + (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; + (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; + (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; + (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; + esac +fi + +# Escape application args +save () { + for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done + echo " " +} +APP_ARGS=$(save "$@") + +# Collect all arguments for the java command, following the shell quoting and substitution rules +eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" + +# by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong +if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then + cd "$(dirname "$0")" +fi + +exec "$JAVACMD" "$@" diff --git a/gradlew.bat b/gradlew.bat new file mode 100644 index 0000000000..f9553162f1 --- /dev/null +++ b/gradlew.bat @@ -0,0 +1,84 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Gradle startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. +set DEFAULT_JVM_OPTS= + +@rem Find java.exe +if defined JAVA_HOME goto findJavaFromJavaHome + +set JAVA_EXE=java.exe +%JAVA_EXE% -version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto init + +echo. +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:findJavaFromJavaHome +set JAVA_HOME=%JAVA_HOME:"=% +set JAVA_EXE=%JAVA_HOME%/bin/java.exe + +if exist "%JAVA_EXE%" goto init + +echo. +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% +echo. +echo Please set the JAVA_HOME variable in your environment to match the +echo location of your Java installation. + +goto fail + +:init +@rem Get command-line arguments, handling Windows variants + +if not "%OS%" == "Windows_NT" goto win9xME_args + +:win9xME_args +@rem Slurp the command line arguments. +set CMD_LINE_ARGS= +set _SKIP=2 + +:win9xME_args_slurp +if "x%~1" == "x" goto execute + +set CMD_LINE_ARGS=%* + +:execute +@rem Setup the command line + +set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar + +@rem Execute Gradle +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% + +:end +@rem End local scope for the variables with windows NT shell +if "%ERRORLEVEL%"=="0" goto mainEnd + +:fail +rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of +rem the _cmd.exe /c_ return code! +if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 +exit /b 1 + +:mainEnd +if "%OS%"=="Windows_NT" endlocal + +:omega diff --git a/http-api/build.gradle b/http-api/build.gradle new file mode 100644 index 0000000000..c97703b8fc --- /dev/null +++ b/http-api/build.gradle @@ -0,0 +1,13 @@ + +description = 'Web API' +dependencies { + compile group: 'com.squareup.okhttp3', name: 'okhttp', version:'3.14.0' + compile group: 'com.google.code.gson', name: 'gson', version:'2.8.5' + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'org.apache.commons', name: 'commons-csv', version:'1.4' + compile group: 'io.reactivex.rxjava2', name: 'rxjava', version:'2.2.10' + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.slf4j', name: 'slf4j-simple', version:'1.7.26' + testCompile group: 'com.squareup.okhttp3', name: 'mockwebserver', version:'3.14.0' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' +} diff --git a/http-service/build.gradle b/http-service/build.gradle new file mode 100644 index 0000000000..44405d58fa --- /dev/null +++ b/http-service/build.gradle @@ -0,0 +1,28 @@ + +apply plugin: 'war' + +description = 'Web Service' +dependencies { + compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version:'1.5.6.RELEASE' + compile group: 'org.springframework.boot', name: 'spring-boot-devtools', version:'1.5.6.RELEASE' + compile group: 'org.springframework', name: 'spring-jdbc', version:'4.3.10.RELEASE' + compile group: 'org.mapstruct', name: 'mapstruct-jdk8', version:'1.2.0.Final' + compile project(':http-api') + compile project(':cache') + compile group: 'org.sql2o', name: 'sql2o', version:'1.6.0' + compile group: 'com.google.guava', name: 'guava', version:'28.0-jre' + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'com.github.scribejava', name: 'scribejava-apis', version:'6.6.3' + compile group: 'io.minio', name: 'minio', version:'3.0.6' + compile(group: 'redis.clients', name: 'jedis', version:'3.0.1') { +exclude(module: 'commons-pool2') + } + testCompile(group: 'org.springframework.boot', name: 'spring-boot-starter-test', version:'1.5.6.RELEASE') { +exclude(module: 'commons-logging') + } + testCompile group: 'com.squareup.okhttp3', name: 'mockwebserver', version:'3.14.0' + testCompile group: 'com.h2database', name: 'h2', version:'1.4.196' + providedCompile group: 'org.springframework.boot', name: 'spring-boot-starter-tomcat', version:'1.5.6.RELEASE' + providedCompile group: 'org.projectlombok', name: 'lombok', version:'1.18.8' + providedCompile group: 'org.mariadb.jdbc', name: 'mariadb-java-client', version:'2.4.2' +} diff --git a/injected-client/build.gradle b/injected-client/build.gradle new file mode 100644 index 0000000000..eb9ca810ae --- /dev/null +++ b/injected-client/build.gradle @@ -0,0 +1,6 @@ + +description = 'Injected Client' +dependencies { + compile project(':rs-client') + compile group: 'net.runelite.rs', name: 'vanilla', version:'181' +} diff --git a/injector-plugin/build.gradle b/injector-plugin/build.gradle new file mode 100644 index 0000000000..343525f9ce --- /dev/null +++ b/injector-plugin/build.gradle @@ -0,0 +1,13 @@ +group = 'net.runelite.rs' +description = 'Injector' +dependencies { + compile project(':deobfuscator') + compile project(':mixins') + compile project(':runelite-api') + compile project(':runescape-api') + compile group: 'org.apache.maven', name: 'maven-plugin-api', version:'3.6.1' + testCompile project(':deobfuscator') + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.mockito', name: 'mockito-all', version:'1.10.19' + compileOnly group: 'org.apache.maven.plugin-tools', name: 'maven-plugin-annotations', version:'3.6.0' +} diff --git a/protocol-api/build.gradle b/protocol-api/build.gradle new file mode 100644 index 0000000000..1bf7ca2cd2 --- /dev/null +++ b/protocol-api/build.gradle @@ -0,0 +1,9 @@ + +description = 'Protocol API' +dependencies { + compile project(':runelite-api') + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'com.google.guava', name: 'guava', version:'28.0-jre' + testCompile group: 'junit', name: 'junit', version:'4.12' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' +} diff --git a/protocol/build.gradle b/protocol/build.gradle new file mode 100644 index 0000000000..067154033f --- /dev/null +++ b/protocol/build.gradle @@ -0,0 +1,10 @@ + +description = 'Protocol' +dependencies { + compile project(':protocol-api') + compile project(':cache') + compile group: 'com.google.guava', name: 'guava', version:'28.0-jre' + compile group: 'io.netty', name: 'netty-all', version:'4.1.37.Final' + testCompile group: 'junit', name: 'junit', version:'4.12' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' +} diff --git a/runelite-api/build.gradle b/runelite-api/build.gradle new file mode 100644 index 0000000000..04881187cd --- /dev/null +++ b/runelite-api/build.gradle @@ -0,0 +1,8 @@ + +description = 'RuneLite API' +dependencies { + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'com.google.code.findbugs', name: 'jsr305', version:'3.0.2' + testCompile group: 'junit', name: 'junit', version:'4.12' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' +} diff --git a/runelite-client/build.gradle b/runelite-client/build.gradle new file mode 100644 index 0000000000..e4adb69553 --- /dev/null +++ b/runelite-client/build.gradle @@ -0,0 +1,49 @@ + +description = 'RuneLite Client' +dependencies { + compile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile group: 'ch.qos.logback', name: 'logback-classic', version:'1.2.3' + compile group: 'net.sf.jopt-simple', name: 'jopt-simple', version:'5.0.1' + compile group: 'com.google.guava', name: 'guava', version:'28.0-jre' + compile group: 'com.google.inject', name: 'guice', version:'4.1.0', classifier:'no_aop' + compile group: 'com.google.code.gson', name: 'gson', version:'2.8.5' + compile group: 'net.runelite.pushingpixels', name: 'substance', version:'8.0.02' + compile group: 'org.apache.commons', name: 'commons-text', version:'1.2' + compile group: 'org.jogamp.jogl', name: 'jogl-all', version:'2.3.2' + compile group: 'org.jogamp.gluegen', name: 'gluegen-rt', version:'2.3.2' + compile(group: 'io.sigpipe', name: 'jbsdiff', version:'1.0') { +exclude(module: 'xz') + } + compile group: 'net.java.dev.jna', name: 'jna', version:'4.5.1' + compile group: 'net.java.dev.jna', name: 'jna-platform', version:'4.5.1' + compile project(':runelite-api') + compile project(':http-api') + compile group: 'net.runelite', name: 'discord', version:'1.1' + compile group: 'org.javassist', name: 'javassist', version:'3.25.0-GA' + compile group: 'org.xeustechnologies', name: 'jcl-core', version:'2.8' + compile group: 'org.jetbrains', name: 'annotations', version:'17.0.0' + compile group: 'com.github.joonasvali.naturalmouse', name: 'naturalmouse', version:'[1.0.0,)' + compile group: 'org.ow2.asm', name: 'asm-all', version:'6.0_BETA' + compile group: 'org.codehaus.plexus', name: 'plexus-utils', version:'3.2.0' + compile group: 'org.apache.httpcomponents', name: 'httpcore', version:'4.4.11' + compile group: 'org.apache.httpcomponents', name: 'httpmime', version:'4.5.9' + compile group: 'io.reactivex.rxjava2', name: 'rxjava', version:'2.2.10' + compile group: 'com.jakewharton.rxrelay2', name: 'rxrelay', version:'2.1.0' + runtime group: 'net.runelite.pushingpixels', name: 'trident', version:'1.5.00' + runtime group: 'org.jogamp.jogl', name: 'jogl-all', version:'2.3.2', classifier:'natives-windows-amd64' + runtime group: 'org.jogamp.jogl', name: 'jogl-all', version:'2.3.2', classifier:'natives-windows-i586' + runtime group: 'org.jogamp.jogl', name: 'jogl-all', version:'2.3.2', classifier:'natives-linux-amd64' + runtime group: 'org.jogamp.jogl', name: 'jogl-all', version:'2.3.2', classifier:'natives-linux-i586' + runtime group: 'org.jogamp.gluegen', name: 'gluegen-rt', version:'2.3.2', classifier:'natives-windows-amd64' + runtime group: 'org.jogamp.gluegen', name: 'gluegen-rt', version:'2.3.2', classifier:'natives-windows-i586' + runtime group: 'org.jogamp.gluegen', name: 'gluegen-rt', version:'2.3.2', classifier:'natives-linux-amd64' + runtime group: 'org.jogamp.gluegen', name: 'gluegen-rt', version:'2.3.2', classifier:'natives-linux-i586' + runtime project(':runescape-api') + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.hamcrest', name: 'hamcrest-library', version:'1.3' + testCompile group: 'org.mockito', name: 'mockito-all', version:'1.10.19' + testCompile group: 'com.google.inject.extensions', name: 'guice-testlib', version:'4.1.0' + testCompile group: 'com.google.inject.extensions', name: 'guice-grapher', version:'4.1.0' + compileOnly group: 'org.projectlombok', name: 'lombok', version:'1.18.8' + compileOnly group: 'net.runelite', name: 'orange-extensions', version:'1.0' +} diff --git a/runelite-mixins/build.gradle b/runelite-mixins/build.gradle new file mode 100644 index 0000000000..198b761f2a --- /dev/null +++ b/runelite-mixins/build.gradle @@ -0,0 +1,10 @@ + +description = 'RuneLite Mixins' +dependencies { + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.mockito', name: 'mockito-all', version:'1.10.19' + compileOnly group: 'org.slf4j', name: 'slf4j-api', version:'1.7.25' + compile project(':runescape-api') + compileOnly group: 'com.google.guava', name: 'guava', version:'28.0-jre' + compileOnly group: 'javax.inject', name: 'javax.inject', version:'1' +} diff --git a/runelite-plugin-archetype/build.gradle b/runelite-plugin-archetype/build.gradle new file mode 100644 index 0000000000..9b3a33612e --- /dev/null +++ b/runelite-plugin-archetype/build.gradle @@ -0,0 +1,2 @@ + +description = 'RuneLite Plugin Archetype' diff --git a/runelite-script-assembler-plugin/build.gradle b/runelite-script-assembler-plugin/build.gradle new file mode 100644 index 0000000000..f15d1c92f2 --- /dev/null +++ b/runelite-script-assembler-plugin/build.gradle @@ -0,0 +1,8 @@ + +description = 'Script Assembler Plugin' +dependencies { + compile project(':cache') + compile project(':runelite-api') + compile group: 'org.apache.maven', name: 'maven-plugin-api', version:'3.6.1' + compileOnly group: 'org.apache.maven.plugin-tools', name: 'maven-plugin-annotations', version:'3.6.0' +} diff --git a/runescape-api/build.gradle b/runescape-api/build.gradle new file mode 100644 index 0000000000..bd24d9fee3 --- /dev/null +++ b/runescape-api/build.gradle @@ -0,0 +1,5 @@ +group = 'net.runelite.rs' +description = 'RuneScape API' +dependencies { + compile project(':runelite-api') +} diff --git a/runescape-client/build.gradle b/runescape-client/build.gradle new file mode 100644 index 0000000000..db6950afa5 --- /dev/null +++ b/runescape-client/build.gradle @@ -0,0 +1,8 @@ +group = 'net.runelite.rs' +description = 'RuneScape Client' +dependencies { + compile project(':runescape-api') + testCompile group: 'junit', name: 'junit', version:'4.12' + testCompile group: 'org.slf4j', name: 'slf4j-api', version:'1.7.26' + testCompile group: 'org.slf4j', name: 'slf4j-simple', version:'1.7.26' +} diff --git a/settings.gradle b/settings.gradle new file mode 100644 index 0000000000..65c644bf47 --- /dev/null +++ b/settings.gradle @@ -0,0 +1,36 @@ +rootProject.name = 'runelite-parent' +include ':http-api' +include ':cache' +include ':runelite-api' +include ':protocol-api' +include ':protocol' +include ':cache-client' +include ':cache-updater' +include ':runescape-api' +include ':rs-client' +include ':deobfuscator' +include ':script-assembler-plugin' +include ':client' +include ':mixins' +include ':injector-plugin' +include ':injected-client' +include ':runelite-plugin-archetype' +include ':http-service' + +project(':http-api').projectDir = "$rootDir/http-api" as File +project(':cache').projectDir = "$rootDir/cache" as File +project(':runelite-api').projectDir = "$rootDir/runelite-api" as File +project(':protocol-api').projectDir = "$rootDir/protocol-api" as File +project(':protocol').projectDir = "$rootDir/protocol" as File +project(':cache-client').projectDir = "$rootDir/cache-client" as File +project(':cache-updater').projectDir = "$rootDir/cache-updater" as File +project(':runescape-api').projectDir = "$rootDir/runescape-api" as File +project(':rs-client').projectDir = "$rootDir/runescape-client" as File +project(':deobfuscator').projectDir = "$rootDir/deobfuscator" as File +project(':script-assembler-plugin').projectDir = "$rootDir/runelite-script-assembler-plugin" as File +project(':client').projectDir = "$rootDir/runelite-client" as File +project(':mixins').projectDir = "$rootDir/runelite-mixins" as File +project(':injector-plugin').projectDir = "$rootDir/injector-plugin" as File +project(':injected-client').projectDir = "$rootDir/injected-client" as File +project(':runelite-plugin-archetype').projectDir = "$rootDir/runelite-plugin-archetype" as File +project(':http-service').projectDir = "$rootDir/http-service" as File \ No newline at end of file