diff --git a/.gitignore b/.gitignore
index 89f7884..7298cfd 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,3 +1,8 @@
.DS_Store
-META-INF/
out/
+build/
+.idea/
+.gradle/
+gen/
+*.skeleton
+*.jar
\ No newline at end of file
diff --git a/.idea/.name b/.idea/.name
deleted file mode 100644
index 9b68b0b..0000000
--- a/.idea/.name
+++ /dev/null
@@ -1 +0,0 @@
-idea-sp
\ No newline at end of file
diff --git a/.idea/compiler.xml b/.idea/compiler.xml
deleted file mode 100644
index a852314..0000000
--- a/.idea/compiler.xml
+++ /dev/null
@@ -1,23 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/copyright/profiles_settings.xml b/.idea/copyright/profiles_settings.xml
deleted file mode 100644
index e7bedf3..0000000
--- a/.idea/copyright/profiles_settings.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-
\ No newline at end of file
diff --git a/.idea/encodings.xml b/.idea/encodings.xml
deleted file mode 100644
index d821048..0000000
--- a/.idea/encodings.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
deleted file mode 100644
index 09a258c..0000000
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/inspectionProfiles/profiles_settings.xml b/.idea/inspectionProfiles/profiles_settings.xml
deleted file mode 100644
index 3b31283..0000000
--- a/.idea/inspectionProfiles/profiles_settings.xml
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
deleted file mode 100644
index 563a29e..0000000
--- a/.idea/misc.xml
+++ /dev/null
@@ -1,191 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules.xml b/.idea/modules.xml
deleted file mode 100644
index fe1aa3a..0000000
--- a/.idea/modules.xml
+++ /dev/null
@@ -1,8 +0,0 @@
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/scopes/scope_settings.xml b/.idea/scopes/scope_settings.xml
deleted file mode 100644
index 922003b..0000000
--- a/.idea/scopes/scope_settings.xml
+++ /dev/null
@@ -1,5 +0,0 @@
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml
deleted file mode 100644
index e96534f..0000000
--- a/.idea/uiDesigner.xml
+++ /dev/null
@@ -1,124 +0,0 @@
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
- -
-
-
-
-
- -
-
-
- -
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/vcs.xml b/.idea/vcs.xml
deleted file mode 100644
index 6564d52..0000000
--- a/.idea/vcs.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
deleted file mode 100644
index 6438af9..0000000
--- a/.idea/workspace.xml
+++ /dev/null
@@ -1,1304 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 1425584286274
-
- 1425584286274
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- IDEA IU-139.1117.1
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/build.gradle.kts b/build.gradle.kts
new file mode 100644
index 0000000..634ff94
--- /dev/null
+++ b/build.gradle.kts
@@ -0,0 +1,179 @@
+import org.jetbrains.grammarkit.tasks.GenerateLexer
+import org.jetbrains.grammarkit.tasks.GenerateParser
+import org.jetbrains.intellij.tasks.PatchPluginXmlTask
+import org.jetbrains.kotlin.gradle.plugin.KotlinSourceSet
+import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
+import java.io.*
+import java.nio.file.Paths
+
+val isCI = !System.getenv("CI").isNullOrBlank()
+val commitHash = kotlin.run {
+ val process: Process = Runtime.getRuntime().exec("git rev-parse --short HEAD")
+ process.waitFor()
+ val output = process.inputStream.use {
+ process.inputStream.use { it.readBytes().let(::String) }
+ }
+ process.destroy()
+ output.trim()
+}
+
+val pluginComingVersion = "0.0.1"
+val pluginVersion = if (isCI) "$pluginComingVersion-$commitHash" else pluginComingVersion
+val packageName = "tf.ngs.sp"
+
+group = packageName
+version = pluginVersion
+
+plugins {
+ java
+ id("org.jetbrains.intellij") version "0.4.14"
+ id("org.jetbrains.grammarkit") version "2019.3"
+ kotlin("jvm") version "1.3.60"
+}
+
+fun fromToolbox(root: String, ide: String) = file(root)
+ .resolve(ide)
+ .takeIf { it.exists() }
+ ?.resolve("ch-0")
+ ?.listFiles()
+ .orEmpty()
+ .filterNotNull()
+ .filter { it.isDirectory }
+ .filterNot { it.name.endsWith(".plugins") }
+ .maxBy {
+ val (major, minor, patch) = it.name.split('.')
+ String.format("%5s%5s%5s", major, minor, patch)
+ }
+ ?.also { println("Picked: $it") }
+
+allprojects {
+ apply { plugin("org.jetbrains.grammarkit") }
+}
+
+grammarKit {
+ grammarKitRelease = "7aecfcd72619e9c241866578e8312f339b4ddbd8"
+}
+
+intellij {
+ updateSinceUntilBuild = false
+ instrumentCode = true
+ if (!isCI) {
+ setPlugins("PsiViewer:193-SNAPSHOT", "java")
+ downloadSources = true
+ } else setPlugins("java")
+ val user = System.getProperty("user.name")
+ val os = System.getProperty("os.name")
+ val root = when {
+ os.startsWith("Windows") -> "C:\\Users\\$user\\AppData\\Local\\JetBrains\\Toolbox\\apps"
+ os == "Linux" -> "/home/$user/.local/share/JetBrains/Toolbox/apps"
+ else -> return@intellij
+ }
+ val intellijPath = sequenceOf("IDEA-C", "IDEA-U")
+ .mapNotNull { fromToolbox(root, it) }.firstOrNull()
+ intellijPath?.absolutePath?.let { localPath = it }
+ val pycharmPath = sequenceOf("PyCharm-C", "IDEA-C", "IDEA-U")
+ .mapNotNull { fromToolbox(root, it) }.firstOrNull()
+ pycharmPath?.absolutePath?.let { alternativeIdePath = it }
+}
+
+java {
+ sourceCompatibility = JavaVersion.VERSION_1_8
+ targetCompatibility = JavaVersion.VERSION_1_8
+}
+
+tasks.withType {
+ changeNotes(file("docs/change-notes.html").readText())
+ version(pluginVersion)
+ pluginId(packageName)
+}
+
+sourceSets {
+ main {
+ withConvention(KotlinSourceSet::class) {
+ listOf(java, kotlin).forEach { it.srcDirs("src", "gen") }
+ }
+ resources.srcDir("res")
+ }
+
+ test {
+ withConvention(KotlinSourceSet::class) {
+ listOf(java, kotlin).forEach { it.srcDirs("test") }
+ }
+ resources.srcDir("testData")
+ }
+}
+
+repositories {
+ mavenCentral()
+ maven("https://dl.bintray.com/jetbrains/markdown/")
+}
+
+dependencies {
+ compile(kotlin("stdlib-jdk8"))
+ compile(group = "org.eclipse.mylyn.github", name = "org.eclipse.egit.github.core", version = "2.1.5") {
+ exclude(module = "gson")
+ }
+ compile("org.jetbrains", "markdown", "0.1.31")
+ testCompile(kotlin(module = "test-junit"))
+ testCompile(group = "junit", name = "junit", version = "4.12")
+}
+
+task("displayCommitHash") {
+ group = "help"
+ description = "Display the newest commit hash"
+ doFirst { println("Commit hash: $commitHash") }
+}
+
+task("isCI") {
+ group = "help"
+ description = "Check if it's running in a continuous-integration"
+ doFirst { println(if (isCI) "Yes, I'm on a CI." else "No, I'm not on CI.") }
+}
+
+// Don't specify type explicitly. Will be incorrectly recognized
+val parserRoot = Paths.get("tf", "ngs", "sp", "lang")
+val lexerRoot = Paths.get("gen", "tf", "ngs", "sp", "lang")
+fun path(more: Iterable<*>) = more.joinToString(File.separator)
+fun bnf(name: String) = Paths.get("grammar", "$name-grammar.bnf").toString()
+fun flex(name: String) = Paths.get("grammar", "$name-lexer.flex").toString()
+
+val genParser = task("genParser") {
+ group = tasks["init"].group!!
+ description = "Generate the Parser and PsiElement classes"
+ source = bnf("sourcepawn")
+ targetRoot = "gen/"
+ pathToParser = path(parserRoot + "SourcePawnParser.java")
+ pathToPsiRoot = path(parserRoot + "psi")
+ purgeOldFiles = true
+}
+
+val genLexer = task("genLexer") {
+ group = genParser.group
+ description = "Generate the Lexer"
+ source = flex("sourcepawn")
+ targetDir = path(lexerRoot)
+ targetClass = "SourcePawnLexer"
+ purgeOldFiles = true
+ dependsOn(genParser)
+}
+
+val cleanGenerated = task("cleanGenerated") {
+ group = tasks["clean"].group
+ description = "Remove all generated codes"
+ doFirst { delete("gen") }
+}
+
+tasks.withType {
+ dependsOn(
+ genParser,
+ genLexer
+ )
+ kotlinOptions {
+ jvmTarget = "1.8"
+ languageVersion = "1.3"
+ apiVersion = "1.3"
+ freeCompilerArgs = listOf("-Xjvm-default=enable")
+ }
+}
+
+tasks.withType { dependsOn(cleanGenerated) }
diff --git a/docs/change-notes.html b/docs/change-notes.html
new file mode 100644
index 0000000..e5960ce
--- /dev/null
+++ b/docs/change-notes.html
@@ -0,0 +1,6 @@
+0.0.1
+
+ - First plugin release!
+ - Kotlin port of y4kman's idea-sp
+ - Support new grammar fully
+
diff --git a/gen/org/idea_sp/parser/SourcePawnParser.java b/gen/org/idea_sp/parser/SourcePawnParser.java
deleted file mode 100644
index aa308d2..0000000
--- a/gen/org/idea_sp/parser/SourcePawnParser.java
+++ /dev/null
@@ -1,755 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.parser;
-
-import com.intellij.lang.PsiBuilder;
-import com.intellij.lang.PsiBuilder.Marker;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import static com.intellij.lang.parser.GeneratedParserUtilBase.*;
-import com.intellij.psi.tree.IElementType;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.tree.TokenSet;
-import com.intellij.lang.PsiParser;
-
-@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"})
-public class SourcePawnParser implements PsiParser {
-
- public ASTNode parse(IElementType t, PsiBuilder b) {
- parseLight(t, b);
- return b.getTreeBuilt();
- }
-
- public void parseLight(IElementType t, PsiBuilder b) {
- boolean r;
- b = adapt_builder_(t, b, this, null);
- Marker m = enter_section_(b, 0, _COLLAPSE_, null);
- if (t == ARG_INIT) {
- r = arg_init(b, 0);
- }
- else if (t == ARG_NEW) {
- r = arg_new(b, 0);
- }
- else if (t == ARG_OLD) {
- r = arg_old(b, 0);
- }
- else if (t == ARGDECL) {
- r = argdecl(b, 0);
- }
- else if (t == BUILTIN_TYPE) {
- r = builtin_type(b, 0);
- }
- else if (t == GLOBAL) {
- r = global(b, 0);
- }
- else if (t == GLOBAL_ASSN) {
- r = global_assn(b, 0);
- }
- else if (t == GLOBAL_NEW) {
- r = global_new(b, 0);
- }
- else if (t == GLOBAL_OLD) {
- r = global_old(b, 0);
- }
- else if (t == LABEL) {
- r = label(b, 0);
- }
- else if (t == LITERAL) {
- r = literal(b, 0);
- }
- else if (t == NEW_DIMS) {
- r = new_dims(b, 0);
- }
- else if (t == NUMBER) {
- r = number(b, 0);
- }
- else if (t == OLD_DIMS) {
- r = old_dims(b, 0);
- }
- else if (t == RETURN_NEW) {
- r = return_new(b, 0);
- }
- else if (t == RETURN_OLD) {
- r = return_old(b, 0);
- }
- else if (t == RETURN_TYPE) {
- r = return_type(b, 0);
- }
- else if (t == STORAGE_CLASS) {
- r = storage_class(b, 0);
- }
- else if (t == TAG) {
- r = tag(b, 0);
- }
- else if (t == TAG_VECTOR) {
- r = tag_vector(b, 0);
- }
- else if (t == TAGS) {
- r = tags(b, 0);
- }
- else if (t == TYPE_EXPR) {
- r = type_expr(b, 0);
- }
- else if (t == VAR_NEW) {
- r = var_new(b, 0);
- }
- else if (t == VAR_NEW_PREFIX) {
- r = var_new_prefix(b, 0);
- }
- else if (t == VAR_OLD) {
- r = var_old(b, 0);
- }
- else if (t == VAR_OLD_PREFIX) {
- r = var_old_prefix(b, 0);
- }
- else if (t == VARDECL) {
- r = vardecl(b, 0);
- }
- else {
- r = parse_root_(t, b, 0);
- }
- exit_section_(b, 0, m, t, r, true, TRUE_CONDITION);
- }
-
- protected boolean parse_root_(IElementType t, PsiBuilder b, int l) {
- return root(b, l + 1);
- }
-
- /* ********************************************************** */
- // literal | symbol
- public static boolean arg_init(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_init")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = literal(b, l + 1);
- if (!r) r = consumeToken(b, SYMBOL);
- exit_section_(b, l, m, ARG_INIT, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // "const"? type_expr '&'? symbol old_dims? ('=' arg_init)?
- public static boolean arg_new(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_new")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = arg_new_0(b, l + 1);
- r = r && type_expr(b, l + 1);
- r = r && arg_new_2(b, l + 1);
- r = r && consumeToken(b, SYMBOL);
- r = r && arg_new_4(b, l + 1);
- r = r && arg_new_5(b, l + 1);
- exit_section_(b, l, m, ARG_NEW, r, false, null);
- return r;
- }
-
- // "const"?
- private static boolean arg_new_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_new_0")) return false;
- consumeToken(b, CONST_KEYWORD);
- return true;
- }
-
- // '&'?
- private static boolean arg_new_2(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_new_2")) return false;
- consumeToken(b, AND);
- return true;
- }
-
- // old_dims?
- private static boolean arg_new_4(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_new_4")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- // ('=' arg_init)?
- private static boolean arg_new_5(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_new_5")) return false;
- arg_new_5_0(b, l + 1);
- return true;
- }
-
- // '=' arg_init
- private static boolean arg_new_5_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_new_5_0")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, EQ);
- r = r && arg_init(b, l + 1);
- exit_section_(b, m, null, r);
- return r;
- }
-
- /* ********************************************************** */
- // "const"? tags? '&'? symbol old_dims? ('=' arg_init)?
- public static boolean arg_old(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = arg_old_0(b, l + 1);
- r = r && arg_old_1(b, l + 1);
- r = r && arg_old_2(b, l + 1);
- r = r && consumeToken(b, SYMBOL);
- r = r && arg_old_4(b, l + 1);
- r = r && arg_old_5(b, l + 1);
- exit_section_(b, l, m, ARG_OLD, r, false, null);
- return r;
- }
-
- // "const"?
- private static boolean arg_old_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old_0")) return false;
- consumeToken(b, CONST_KEYWORD);
- return true;
- }
-
- // tags?
- private static boolean arg_old_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old_1")) return false;
- tags(b, l + 1);
- return true;
- }
-
- // '&'?
- private static boolean arg_old_2(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old_2")) return false;
- consumeToken(b, AND);
- return true;
- }
-
- // old_dims?
- private static boolean arg_old_4(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old_4")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- // ('=' arg_init)?
- private static boolean arg_old_5(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old_5")) return false;
- arg_old_5_0(b, l + 1);
- return true;
- }
-
- // '=' arg_init
- private static boolean arg_old_5_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "arg_old_5_0")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, EQ);
- r = r && arg_init(b, l + 1);
- exit_section_(b, m, null, r);
- return r;
- }
-
- /* ********************************************************** */
- // arg_old | arg_new
- public static boolean argdecl(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "argdecl")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = arg_old(b, l + 1);
- if (!r) r = arg_new(b, l + 1);
- exit_section_(b, l, m, ARGDECL, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // "void"
- // | "int"
- // | "float"
- // | "char"
- // | "bool"
- public static boolean builtin_type(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "builtin_type")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = consumeToken(b, "void");
- if (!r) r = consumeToken(b, "int");
- if (!r) r = consumeToken(b, "float");
- if (!r) r = consumeToken(b, "char");
- if (!r) r = consumeToken(b, "bool");
- exit_section_(b, l, m, BUILTIN_TYPE, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // global_old | global_new
- public static boolean global(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = global_old(b, l + 1);
- if (!r) r = global_new(b, l + 1);
- exit_section_(b, l, m, GLOBAL, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // global '=' literal
- public static boolean global_assn(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_assn")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = global(b, l + 1);
- r = r && consumeToken(b, EQ);
- r = r && literal(b, l + 1);
- exit_section_(b, l, m, GLOBAL_ASSN, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // storage_class* type_expr symbol old_dims?
- public static boolean global_new(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_new")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = global_new_0(b, l + 1);
- r = r && type_expr(b, l + 1);
- r = r && consumeToken(b, SYMBOL);
- r = r && global_new_3(b, l + 1);
- exit_section_(b, l, m, GLOBAL_NEW, r, false, null);
- return r;
- }
-
- // storage_class*
- private static boolean global_new_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_new_0")) return false;
- int c = current_position_(b);
- while (true) {
- if (!storage_class(b, l + 1)) break;
- if (!empty_element_parsed_guard_(b, "global_new_0", c)) break;
- c = current_position_(b);
- }
- return true;
- }
-
- // old_dims?
- private static boolean global_new_3(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_new_3")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // storage_class* tag? symbol old_dims?
- public static boolean global_old(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_old")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = global_old_0(b, l + 1);
- r = r && global_old_1(b, l + 1);
- r = r && consumeToken(b, SYMBOL);
- r = r && global_old_3(b, l + 1);
- exit_section_(b, l, m, GLOBAL_OLD, r, false, null);
- return r;
- }
-
- // storage_class*
- private static boolean global_old_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_old_0")) return false;
- int c = current_position_(b);
- while (true) {
- if (!storage_class(b, l + 1)) break;
- if (!empty_element_parsed_guard_(b, "global_old_0", c)) break;
- c = current_position_(b);
- }
- return true;
- }
-
- // tag?
- private static boolean global_old_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_old_1")) return false;
- tag(b, l + 1);
- return true;
- }
-
- // old_dims?
- private static boolean global_old_3(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "global_old_3")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // symbol ':'
- public static boolean label(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "label")) return false;
- if (!nextTokenIs(b, SYMBOL)) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, SYMBOL);
- r = r && consumeToken(b, COLON);
- exit_section_(b, m, LABEL, r);
- return r;
- }
-
- /* ********************************************************** */
- // number | string_literal | character_literal
- public static boolean literal(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "literal")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = number(b, l + 1);
- if (!r) r = consumeToken(b, STRING_LITERAL);
- if (!r) r = consumeToken(b, CHARACTER_LITERAL);
- exit_section_(b, l, m, LITERAL, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // ('[' ']')*
- public static boolean new_dims(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "new_dims")) return false;
- Marker m = enter_section_(b, l, _NONE_, "");
- int c = current_position_(b);
- while (true) {
- if (!new_dims_0(b, l + 1)) break;
- if (!empty_element_parsed_guard_(b, "new_dims", c)) break;
- c = current_position_(b);
- }
- exit_section_(b, l, m, NEW_DIMS, true, false, null);
- return true;
- }
-
- // '[' ']'
- private static boolean new_dims_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "new_dims_0")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, LBRACKET);
- r = r && consumeToken(b, RBRACKET);
- exit_section_(b, m, null, r);
- return r;
- }
-
- /* ********************************************************** */
- // integer_literal | hex_literal | float_literal
- public static boolean number(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "number")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = consumeToken(b, INTEGER_LITERAL);
- if (!r) r = consumeToken(b, HEX_LITERAL);
- if (!r) r = consumeToken(b, FLOAT_LITERAL);
- exit_section_(b, l, m, NUMBER, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // ('[' expr? ']')+
- public static boolean old_dims(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "old_dims")) return false;
- if (!nextTokenIs(b, LBRACKET)) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = old_dims_0(b, l + 1);
- int c = current_position_(b);
- while (r) {
- if (!old_dims_0(b, l + 1)) break;
- if (!empty_element_parsed_guard_(b, "old_dims", c)) break;
- c = current_position_(b);
- }
- exit_section_(b, m, OLD_DIMS, r);
- return r;
- }
-
- // '[' expr? ']'
- private static boolean old_dims_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "old_dims_0")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, LBRACKET);
- r = r && old_dims_0_1(b, l + 1);
- r = r && consumeToken(b, RBRACKET);
- exit_section_(b, m, null, r);
- return r;
- }
-
- // expr?
- private static boolean old_dims_0_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "old_dims_0_1")) return false;
- consumeToken(b, EXPR);
- return true;
- }
-
- /* ********************************************************** */
- // type_expr new_dims?
- public static boolean return_new(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "return_new")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = type_expr(b, l + 1);
- r = r && return_new_1(b, l + 1);
- exit_section_(b, l, m, RETURN_NEW, r, false, null);
- return r;
- }
-
- // new_dims?
- private static boolean return_new_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "return_new_1")) return false;
- new_dims(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // old_dims? label?
- public static boolean return_old(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "return_old")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = return_old_0(b, l + 1);
- r = r && return_old_1(b, l + 1);
- exit_section_(b, l, m, RETURN_OLD, r, false, null);
- return r;
- }
-
- // old_dims?
- private static boolean return_old_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "return_old_0")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- // label?
- private static boolean return_old_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "return_old_1")) return false;
- label(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // return_old | return_new
- public static boolean return_type(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "return_type")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = return_old(b, l + 1);
- if (!r) r = return_new(b, l + 1);
- exit_section_(b, l, m, RETURN_TYPE, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // root_item *
- static boolean root(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "root")) return false;
- int c = current_position_(b);
- while (true) {
- if (!root_item(b, l + 1)) break;
- if (!empty_element_parsed_guard_(b, "root", c)) break;
- c = current_position_(b);
- }
- return true;
- }
-
- /* ********************************************************** */
- // global_assn SEMICOLON
- static boolean root_item(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "root_item")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = global_assn(b, l + 1);
- r = r && consumeToken(b, SEMICOLON);
- exit_section_(b, m, null, r);
- return r;
- }
-
- /* ********************************************************** */
- // "public" | "static" | "const" | "stock"
- public static boolean storage_class(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "storage_class")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = consumeToken(b, PUBLIC_KEYWORD);
- if (!r) r = consumeToken(b, STATIC_KEYWORD);
- if (!r) r = consumeToken(b, CONST_KEYWORD);
- if (!r) r = consumeToken(b, STOCK_KEYWORD);
- exit_section_(b, l, m, STORAGE_CLASS, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // label
- public static boolean tag(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "tag")) return false;
- if (!nextTokenIs(b, SYMBOL)) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = label(b, l + 1);
- exit_section_(b, m, TAG, r);
- return r;
- }
-
- /* ********************************************************** */
- // '{' symbol (',' symbol)* '}' ':'
- public static boolean tag_vector(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "tag_vector")) return false;
- if (!nextTokenIs(b, LBRACE)) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, LBRACE);
- r = r && consumeToken(b, SYMBOL);
- r = r && tag_vector_2(b, l + 1);
- r = r && consumeToken(b, RBRACE);
- r = r && consumeToken(b, COLON);
- exit_section_(b, m, TAG_VECTOR, r);
- return r;
- }
-
- // (',' symbol)*
- private static boolean tag_vector_2(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "tag_vector_2")) return false;
- int c = current_position_(b);
- while (true) {
- if (!tag_vector_2_0(b, l + 1)) break;
- if (!empty_element_parsed_guard_(b, "tag_vector_2", c)) break;
- c = current_position_(b);
- }
- return true;
- }
-
- // ',' symbol
- private static boolean tag_vector_2_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "tag_vector_2_0")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = consumeToken(b, COMMA);
- r = r && consumeToken(b, SYMBOL);
- exit_section_(b, m, null, r);
- return r;
- }
-
- /* ********************************************************** */
- // tag_vector | tag
- public static boolean tags(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "tags")) return false;
- if (!nextTokenIs(b, "", LBRACE, SYMBOL)) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = tag_vector(b, l + 1);
- if (!r) r = tag(b, l + 1);
- exit_section_(b, l, m, TAGS, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // (builtin_type | symbol) new_dims?
- public static boolean type_expr(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "type_expr")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = type_expr_0(b, l + 1);
- r = r && type_expr_1(b, l + 1);
- exit_section_(b, l, m, TYPE_EXPR, r, false, null);
- return r;
- }
-
- // builtin_type | symbol
- private static boolean type_expr_0(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "type_expr_0")) return false;
- boolean r;
- Marker m = enter_section_(b);
- r = builtin_type(b, l + 1);
- if (!r) r = consumeToken(b, SYMBOL);
- exit_section_(b, m, null, r);
- return r;
- }
-
- // new_dims?
- private static boolean type_expr_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "type_expr_1")) return false;
- new_dims(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // var_new_prefix type_expr symbol old_dims?
- public static boolean var_new(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_new")) return false;
- if (!nextTokenIs(b, "", CONST_KEYWORD, STATIC_KEYWORD)) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = var_new_prefix(b, l + 1);
- r = r && type_expr(b, l + 1);
- r = r && consumeToken(b, SYMBOL);
- r = r && var_new_3(b, l + 1);
- exit_section_(b, l, m, VAR_NEW, r, false, null);
- return r;
- }
-
- // old_dims?
- private static boolean var_new_3(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_new_3")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // "static" | "const"
- public static boolean var_new_prefix(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_new_prefix")) return false;
- if (!nextTokenIs(b, "", CONST_KEYWORD, STATIC_KEYWORD)) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = consumeToken(b, STATIC_KEYWORD);
- if (!r) r = consumeToken(b, CONST_KEYWORD);
- exit_section_(b, l, m, VAR_NEW_PREFIX, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // var_old_prefix tag? symbol old_dims?
- public static boolean var_old(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_old")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = var_old_prefix(b, l + 1);
- r = r && var_old_1(b, l + 1);
- r = r && consumeToken(b, SYMBOL);
- r = r && var_old_3(b, l + 1);
- exit_section_(b, l, m, VAR_OLD, r, false, null);
- return r;
- }
-
- // tag?
- private static boolean var_old_1(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_old_1")) return false;
- tag(b, l + 1);
- return true;
- }
-
- // old_dims?
- private static boolean var_old_3(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_old_3")) return false;
- old_dims(b, l + 1);
- return true;
- }
-
- /* ********************************************************** */
- // "new" | "decl" | "static" | "const"
- public static boolean var_old_prefix(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "var_old_prefix")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = consumeToken(b, NEW_KEYWORD);
- if (!r) r = consumeToken(b, DECL_KEYWORD);
- if (!r) r = consumeToken(b, STATIC_KEYWORD);
- if (!r) r = consumeToken(b, CONST_KEYWORD);
- exit_section_(b, l, m, VAR_OLD_PREFIX, r, false, null);
- return r;
- }
-
- /* ********************************************************** */
- // var_old | var_new
- public static boolean vardecl(PsiBuilder b, int l) {
- if (!recursion_guard_(b, l, "vardecl")) return false;
- boolean r;
- Marker m = enter_section_(b, l, _NONE_, "");
- r = var_old(b, l + 1);
- if (!r) r = var_new(b, l + 1);
- exit_section_(b, l, m, VARDECL, r, false, null);
- return r;
- }
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnArgInit.java b/gen/org/idea_sp/psi/SourcePawnArgInit.java
deleted file mode 100644
index 0d1edd1..0000000
--- a/gen/org/idea_sp/psi/SourcePawnArgInit.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnArgInit extends PsiElement {
-
- @Nullable
- SourcePawnLiteral getLiteral();
-
- @Nullable
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnArgNew.java b/gen/org/idea_sp/psi/SourcePawnArgNew.java
deleted file mode 100644
index 98492d6..0000000
--- a/gen/org/idea_sp/psi/SourcePawnArgNew.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnArgNew extends PsiElement {
-
- @Nullable
- SourcePawnArgInit getArgInit();
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
- @NotNull
- SourcePawnTypeExpr getTypeExpr();
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnArgOld.java b/gen/org/idea_sp/psi/SourcePawnArgOld.java
deleted file mode 100644
index b5affaf..0000000
--- a/gen/org/idea_sp/psi/SourcePawnArgOld.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnArgOld extends PsiElement {
-
- @Nullable
- SourcePawnArgInit getArgInit();
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
- @Nullable
- SourcePawnTags getTags();
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnArgdecl.java b/gen/org/idea_sp/psi/SourcePawnArgdecl.java
deleted file mode 100644
index 181c549..0000000
--- a/gen/org/idea_sp/psi/SourcePawnArgdecl.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnArgdecl extends PsiElement {
-
- @Nullable
- SourcePawnArgNew getArgNew();
-
- @Nullable
- SourcePawnArgOld getArgOld();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnBuiltinType.java b/gen/org/idea_sp/psi/SourcePawnBuiltinType.java
deleted file mode 100644
index 5057ddb..0000000
--- a/gen/org/idea_sp/psi/SourcePawnBuiltinType.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnBuiltinType extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnGlobal.java b/gen/org/idea_sp/psi/SourcePawnGlobal.java
deleted file mode 100644
index c54fb2c..0000000
--- a/gen/org/idea_sp/psi/SourcePawnGlobal.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnGlobal extends PsiElement {
-
- @Nullable
- SourcePawnGlobalNew getGlobalNew();
-
- @Nullable
- SourcePawnGlobalOld getGlobalOld();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnGlobalAssn.java b/gen/org/idea_sp/psi/SourcePawnGlobalAssn.java
deleted file mode 100644
index 47efc8b..0000000
--- a/gen/org/idea_sp/psi/SourcePawnGlobalAssn.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnGlobalAssn extends PsiElement {
-
- @NotNull
- SourcePawnGlobal getGlobal();
-
- @NotNull
- SourcePawnLiteral getLiteral();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnGlobalNew.java b/gen/org/idea_sp/psi/SourcePawnGlobalNew.java
deleted file mode 100644
index e317be4..0000000
--- a/gen/org/idea_sp/psi/SourcePawnGlobalNew.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnGlobalNew extends PsiElement {
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
- @NotNull
- List getStorageClassList();
-
- @NotNull
- SourcePawnTypeExpr getTypeExpr();
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnGlobalOld.java b/gen/org/idea_sp/psi/SourcePawnGlobalOld.java
deleted file mode 100644
index 5aa6914..0000000
--- a/gen/org/idea_sp/psi/SourcePawnGlobalOld.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnGlobalOld extends PsiElement {
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
- @NotNull
- List getStorageClassList();
-
- @Nullable
- SourcePawnTag getTag();
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnLabel.java b/gen/org/idea_sp/psi/SourcePawnLabel.java
deleted file mode 100644
index 7b78766..0000000
--- a/gen/org/idea_sp/psi/SourcePawnLabel.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnLabel extends PsiElement {
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnLiteral.java b/gen/org/idea_sp/psi/SourcePawnLiteral.java
deleted file mode 100644
index 0d9eb38..0000000
--- a/gen/org/idea_sp/psi/SourcePawnLiteral.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnLiteral extends PsiElement {
-
- @Nullable
- SourcePawnNumber getNumber();
-
- @Nullable
- PsiElement getCharacterLiteral();
-
- @Nullable
- PsiElement getStringLiteral();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnNewDims.java b/gen/org/idea_sp/psi/SourcePawnNewDims.java
deleted file mode 100644
index a2f2a30..0000000
--- a/gen/org/idea_sp/psi/SourcePawnNewDims.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnNewDims extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnNumber.java b/gen/org/idea_sp/psi/SourcePawnNumber.java
deleted file mode 100644
index 50e501d..0000000
--- a/gen/org/idea_sp/psi/SourcePawnNumber.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnNumber extends PsiElement {
-
- @Nullable
- PsiElement getFloatLiteral();
-
- @Nullable
- PsiElement getHexLiteral();
-
- @Nullable
- PsiElement getIntegerLiteral();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnOldDims.java b/gen/org/idea_sp/psi/SourcePawnOldDims.java
deleted file mode 100644
index e01f15b..0000000
--- a/gen/org/idea_sp/psi/SourcePawnOldDims.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnOldDims extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnReturnNew.java b/gen/org/idea_sp/psi/SourcePawnReturnNew.java
deleted file mode 100644
index 274498f..0000000
--- a/gen/org/idea_sp/psi/SourcePawnReturnNew.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnReturnNew extends PsiElement {
-
- @Nullable
- SourcePawnNewDims getNewDims();
-
- @NotNull
- SourcePawnTypeExpr getTypeExpr();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnReturnOld.java b/gen/org/idea_sp/psi/SourcePawnReturnOld.java
deleted file mode 100644
index d2a1792..0000000
--- a/gen/org/idea_sp/psi/SourcePawnReturnOld.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnReturnOld extends PsiElement {
-
- @Nullable
- SourcePawnLabel getLabel();
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnReturnType.java b/gen/org/idea_sp/psi/SourcePawnReturnType.java
deleted file mode 100644
index a3d522a..0000000
--- a/gen/org/idea_sp/psi/SourcePawnReturnType.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnReturnType extends PsiElement {
-
- @Nullable
- SourcePawnReturnNew getReturnNew();
-
- @Nullable
- SourcePawnReturnOld getReturnOld();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnStorageClass.java b/gen/org/idea_sp/psi/SourcePawnStorageClass.java
deleted file mode 100644
index ca0e316..0000000
--- a/gen/org/idea_sp/psi/SourcePawnStorageClass.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnStorageClass extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnTag.java b/gen/org/idea_sp/psi/SourcePawnTag.java
deleted file mode 100644
index db08c0f..0000000
--- a/gen/org/idea_sp/psi/SourcePawnTag.java
+++ /dev/null
@@ -1,13 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnTag extends PsiElement {
-
- @NotNull
- SourcePawnLabel getLabel();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnTagVector.java b/gen/org/idea_sp/psi/SourcePawnTagVector.java
deleted file mode 100644
index da9eaff..0000000
--- a/gen/org/idea_sp/psi/SourcePawnTagVector.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnTagVector extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnTags.java b/gen/org/idea_sp/psi/SourcePawnTags.java
deleted file mode 100644
index a1577fc..0000000
--- a/gen/org/idea_sp/psi/SourcePawnTags.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnTags extends PsiElement {
-
- @Nullable
- SourcePawnTag getTag();
-
- @Nullable
- SourcePawnTagVector getTagVector();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnTypeExpr.java b/gen/org/idea_sp/psi/SourcePawnTypeExpr.java
deleted file mode 100644
index dfa6b5c..0000000
--- a/gen/org/idea_sp/psi/SourcePawnTypeExpr.java
+++ /dev/null
@@ -1,19 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnTypeExpr extends PsiElement {
-
- @Nullable
- SourcePawnBuiltinType getBuiltinType();
-
- @Nullable
- SourcePawnNewDims getNewDims();
-
- @Nullable
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnTypes.java b/gen/org/idea_sp/psi/SourcePawnTypes.java
deleted file mode 100644
index db10dea..0000000
--- a/gen/org/idea_sp/psi/SourcePawnTypes.java
+++ /dev/null
@@ -1,211 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import com.intellij.psi.tree.IElementType;
-import com.intellij.psi.PsiElement;
-import com.intellij.lang.ASTNode;
-import org.idea_sp.psi.impl.*;
-
-public interface SourcePawnTypes {
-
- IElementType ARGDECL = new SourcePawnElementType("ARGDECL");
- IElementType ARG_INIT = new SourcePawnElementType("ARG_INIT");
- IElementType ARG_NEW = new SourcePawnElementType("ARG_NEW");
- IElementType ARG_OLD = new SourcePawnElementType("ARG_OLD");
- IElementType BUILTIN_TYPE = new SourcePawnElementType("BUILTIN_TYPE");
- IElementType GLOBAL = new SourcePawnElementType("GLOBAL");
- IElementType GLOBAL_ASSN = new SourcePawnElementType("GLOBAL_ASSN");
- IElementType GLOBAL_NEW = new SourcePawnElementType("GLOBAL_NEW");
- IElementType GLOBAL_OLD = new SourcePawnElementType("GLOBAL_OLD");
- IElementType LABEL = new SourcePawnElementType("LABEL");
- IElementType LITERAL = new SourcePawnElementType("LITERAL");
- IElementType NEW_DIMS = new SourcePawnElementType("NEW_DIMS");
- IElementType NUMBER = new SourcePawnElementType("NUMBER");
- IElementType OLD_DIMS = new SourcePawnElementType("OLD_DIMS");
- IElementType RETURN_NEW = new SourcePawnElementType("RETURN_NEW");
- IElementType RETURN_OLD = new SourcePawnElementType("RETURN_OLD");
- IElementType RETURN_TYPE = new SourcePawnElementType("RETURN_TYPE");
- IElementType STORAGE_CLASS = new SourcePawnElementType("STORAGE_CLASS");
- IElementType TAG = new SourcePawnElementType("TAG");
- IElementType TAGS = new SourcePawnElementType("TAGS");
- IElementType TAG_VECTOR = new SourcePawnElementType("TAG_VECTOR");
- IElementType TYPE_EXPR = new SourcePawnElementType("TYPE_EXPR");
- IElementType VARDECL = new SourcePawnElementType("VARDECL");
- IElementType VAR_NEW = new SourcePawnElementType("VAR_NEW");
- IElementType VAR_NEW_PREFIX = new SourcePawnElementType("VAR_NEW_PREFIX");
- IElementType VAR_OLD = new SourcePawnElementType("VAR_OLD");
- IElementType VAR_OLD_PREFIX = new SourcePawnElementType("VAR_OLD_PREFIX");
-
- IElementType AND = new SourcePawnTokenType("&");
- IElementType ANDAND = new SourcePawnTokenType("&&");
- IElementType ANDEQ = new SourcePawnTokenType("&=");
- IElementType ASSERT_KEYWORD = new SourcePawnTokenType("assert");
- IElementType ASTERISK = new SourcePawnTokenType("*");
- IElementType ASTERISKEQ = new SourcePawnTokenType("*=");
- IElementType BINARY_LITERAL = new SourcePawnTokenType("binary_literal");
- IElementType BLOCK_COMMENT = new SourcePawnTokenType("block_comment");
- IElementType BREAK_KEYWORD = new SourcePawnTokenType("break");
- IElementType CASE_KEYWORD = new SourcePawnTokenType("case");
- IElementType CHARACTER_LITERAL = new SourcePawnTokenType("character_literal");
- IElementType COLON = new SourcePawnTokenType(":");
- IElementType COMMA = new SourcePawnTokenType(",");
- IElementType CONST_KEYWORD = new SourcePawnTokenType("const");
- IElementType CONTINUE_KEYWORD = new SourcePawnTokenType("continue");
- IElementType DECL_KEYWORD = new SourcePawnTokenType("decl");
- IElementType DEFAULT_KEYWORD = new SourcePawnTokenType("default");
- IElementType DEFINED_KEYWORD = new SourcePawnTokenType("defined");
- IElementType DIV = new SourcePawnTokenType("/");
- IElementType DIVEQ = new SourcePawnTokenType("/=");
- IElementType DOT = new SourcePawnTokenType(".");
- IElementType DO_KEYWORD = new SourcePawnTokenType("do");
- IElementType ELLIPSIS = new SourcePawnTokenType("...");
- IElementType ELSE_KEYWORD = new SourcePawnTokenType("else");
- IElementType ENUM_KEYWORD = new SourcePawnTokenType("enum");
- IElementType EQ = new SourcePawnTokenType("=");
- IElementType EQEQ = new SourcePawnTokenType("==");
- IElementType EXCL = new SourcePawnTokenType("!");
- IElementType EXIT_KEYWORD = new SourcePawnTokenType("exit");
- IElementType EXPR = new SourcePawnTokenType("expr");
- IElementType FLOAT_LITERAL = new SourcePawnTokenType("float_literal");
- IElementType FORWARD_KEYWORD = new SourcePawnTokenType("forward");
- IElementType FOR_KEYWORD = new SourcePawnTokenType("for");
- IElementType GOTO_KEYWORD = new SourcePawnTokenType("goto");
- IElementType GT = new SourcePawnTokenType(">");
- IElementType GTGTEQ = new SourcePawnTokenType(">>=");
- IElementType HEX_LITERAL = new SourcePawnTokenType("hex_literal");
- IElementType IF_KEYWORD = new SourcePawnTokenType("if");
- IElementType INTEGER_LITERAL = new SourcePawnTokenType("integer_literal");
- IElementType LBRACE = new SourcePawnTokenType("{");
- IElementType LBRACKET = new SourcePawnTokenType("[");
- IElementType LE = new SourcePawnTokenType("<=");
- IElementType LINE_COMMENT = new SourcePawnTokenType("line_comment");
- IElementType LPAREN = new SourcePawnTokenType("(");
- IElementType LT = new SourcePawnTokenType("<");
- IElementType LTLT = new SourcePawnTokenType("<<");
- IElementType LTLTEQ = new SourcePawnTokenType("<<=");
- IElementType MINUS = new SourcePawnTokenType("-");
- IElementType MINUSEQ = new SourcePawnTokenType("-=");
- IElementType MINUSMINUS = new SourcePawnTokenType("--");
- IElementType NATIVE_KEYWORD = new SourcePawnTokenType("native");
- IElementType NE = new SourcePawnTokenType("!=");
- IElementType NEW_KEYWORD = new SourcePawnTokenType("new");
- IElementType OPERATOR_KEYWORD = new SourcePawnTokenType("operator");
- IElementType OR = new SourcePawnTokenType("|");
- IElementType OREQ = new SourcePawnTokenType("|=");
- IElementType OROR = new SourcePawnTokenType("||");
- IElementType PERC = new SourcePawnTokenType("%");
- IElementType PERCEQ = new SourcePawnTokenType("%=");
- IElementType PLUS = new SourcePawnTokenType("+");
- IElementType PLUSEQ = new SourcePawnTokenType("+=");
- IElementType PLUSPLUS = new SourcePawnTokenType("++");
- IElementType PREPROCESSOR_COMMENT = new SourcePawnTokenType("preprocessor_comment");
- IElementType PUBLIC_KEYWORD = new SourcePawnTokenType("public");
- IElementType QUEST = new SourcePawnTokenType("?");
- IElementType RBRACE = new SourcePawnTokenType("}");
- IElementType RBRACKET = new SourcePawnTokenType("]");
- IElementType RETURN_KEYWORD = new SourcePawnTokenType("return");
- IElementType RPAREN = new SourcePawnTokenType(")");
- IElementType SEMICOLON = new SourcePawnTokenType(";");
- IElementType SIZEOF_KEYWORD = new SourcePawnTokenType("sizeof");
- IElementType SLEEP_KEYWORD = new SourcePawnTokenType("sleep");
- IElementType STATE_KEYWORD = new SourcePawnTokenType("state");
- IElementType STATIC_KEYWORD = new SourcePawnTokenType("static");
- IElementType STOCK_KEYWORD = new SourcePawnTokenType("stock");
- IElementType STRING_LITERAL = new SourcePawnTokenType("string_literal");
- IElementType STRUCT_KEYWORD = new SourcePawnTokenType("struct");
- IElementType SWITCH_KEYWORD = new SourcePawnTokenType("switch");
- IElementType SYMBOL = new SourcePawnTokenType("symbol");
- IElementType TAGOF_KEYWORD = new SourcePawnTokenType("tagof");
- IElementType TILDE = new SourcePawnTokenType("~");
- IElementType WHILE_KEYWORD = new SourcePawnTokenType("while");
- IElementType XOR = new SourcePawnTokenType("^");
- IElementType XOREQ = new SourcePawnTokenType("^=");
-
- class Factory {
- public static PsiElement createElement(ASTNode node) {
- IElementType type = node.getElementType();
- if (type == ARGDECL) {
- return new SourcePawnArgdeclImpl(node);
- }
- else if (type == ARG_INIT) {
- return new SourcePawnArgInitImpl(node);
- }
- else if (type == ARG_NEW) {
- return new SourcePawnArgNewImpl(node);
- }
- else if (type == ARG_OLD) {
- return new SourcePawnArgOldImpl(node);
- }
- else if (type == BUILTIN_TYPE) {
- return new SourcePawnBuiltinTypeImpl(node);
- }
- else if (type == GLOBAL) {
- return new SourcePawnGlobalImpl(node);
- }
- else if (type == GLOBAL_ASSN) {
- return new SourcePawnGlobalAssnImpl(node);
- }
- else if (type == GLOBAL_NEW) {
- return new SourcePawnGlobalNewImpl(node);
- }
- else if (type == GLOBAL_OLD) {
- return new SourcePawnGlobalOldImpl(node);
- }
- else if (type == LABEL) {
- return new SourcePawnLabelImpl(node);
- }
- else if (type == LITERAL) {
- return new SourcePawnLiteralImpl(node);
- }
- else if (type == NEW_DIMS) {
- return new SourcePawnNewDimsImpl(node);
- }
- else if (type == NUMBER) {
- return new SourcePawnNumberImpl(node);
- }
- else if (type == OLD_DIMS) {
- return new SourcePawnOldDimsImpl(node);
- }
- else if (type == RETURN_NEW) {
- return new SourcePawnReturnNewImpl(node);
- }
- else if (type == RETURN_OLD) {
- return new SourcePawnReturnOldImpl(node);
- }
- else if (type == RETURN_TYPE) {
- return new SourcePawnReturnTypeImpl(node);
- }
- else if (type == STORAGE_CLASS) {
- return new SourcePawnStorageClassImpl(node);
- }
- else if (type == TAG) {
- return new SourcePawnTagImpl(node);
- }
- else if (type == TAGS) {
- return new SourcePawnTagsImpl(node);
- }
- else if (type == TAG_VECTOR) {
- return new SourcePawnTagVectorImpl(node);
- }
- else if (type == TYPE_EXPR) {
- return new SourcePawnTypeExprImpl(node);
- }
- else if (type == VARDECL) {
- return new SourcePawnVardeclImpl(node);
- }
- else if (type == VAR_NEW) {
- return new SourcePawnVarNewImpl(node);
- }
- else if (type == VAR_NEW_PREFIX) {
- return new SourcePawnVarNewPrefixImpl(node);
- }
- else if (type == VAR_OLD) {
- return new SourcePawnVarOldImpl(node);
- }
- else if (type == VAR_OLD_PREFIX) {
- return new SourcePawnVarOldPrefixImpl(node);
- }
- throw new AssertionError("Unknown element type: " + type);
- }
- }
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnVarNew.java b/gen/org/idea_sp/psi/SourcePawnVarNew.java
deleted file mode 100644
index dbd09d8..0000000
--- a/gen/org/idea_sp/psi/SourcePawnVarNew.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnVarNew extends PsiElement {
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
- @NotNull
- SourcePawnTypeExpr getTypeExpr();
-
- @NotNull
- SourcePawnVarNewPrefix getVarNewPrefix();
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnVarNewPrefix.java b/gen/org/idea_sp/psi/SourcePawnVarNewPrefix.java
deleted file mode 100644
index 70d204d..0000000
--- a/gen/org/idea_sp/psi/SourcePawnVarNewPrefix.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnVarNewPrefix extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnVarOld.java b/gen/org/idea_sp/psi/SourcePawnVarOld.java
deleted file mode 100644
index 46b86c9..0000000
--- a/gen/org/idea_sp/psi/SourcePawnVarOld.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnVarOld extends PsiElement {
-
- @Nullable
- SourcePawnOldDims getOldDims();
-
- @Nullable
- SourcePawnTag getTag();
-
- @NotNull
- SourcePawnVarOldPrefix getVarOldPrefix();
-
- @NotNull
- PsiElement getSymbol();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnVarOldPrefix.java b/gen/org/idea_sp/psi/SourcePawnVarOldPrefix.java
deleted file mode 100644
index f7fd0f6..0000000
--- a/gen/org/idea_sp/psi/SourcePawnVarOldPrefix.java
+++ /dev/null
@@ -1,10 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnVarOldPrefix extends PsiElement {
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnVardecl.java b/gen/org/idea_sp/psi/SourcePawnVardecl.java
deleted file mode 100644
index fdd01b4..0000000
--- a/gen/org/idea_sp/psi/SourcePawnVardecl.java
+++ /dev/null
@@ -1,16 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElement;
-
-public interface SourcePawnVardecl extends PsiElement {
-
- @Nullable
- SourcePawnVarNew getVarNew();
-
- @Nullable
- SourcePawnVarOld getVarOld();
-
-}
diff --git a/gen/org/idea_sp/psi/SourcePawnVisitor.java b/gen/org/idea_sp/psi/SourcePawnVisitor.java
deleted file mode 100644
index bf25ae7..0000000
--- a/gen/org/idea_sp/psi/SourcePawnVisitor.java
+++ /dev/null
@@ -1,122 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi;
-
-import org.jetbrains.annotations.*;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.PsiElement;
-
-public class SourcePawnVisitor extends PsiElementVisitor {
-
- public void visitArgInit(@NotNull SourcePawnArgInit o) {
- visitPsiElement(o);
- }
-
- public void visitArgNew(@NotNull SourcePawnArgNew o) {
- visitPsiElement(o);
- }
-
- public void visitArgOld(@NotNull SourcePawnArgOld o) {
- visitPsiElement(o);
- }
-
- public void visitArgdecl(@NotNull SourcePawnArgdecl o) {
- visitPsiElement(o);
- }
-
- public void visitBuiltinType(@NotNull SourcePawnBuiltinType o) {
- visitPsiElement(o);
- }
-
- public void visitGlobal(@NotNull SourcePawnGlobal o) {
- visitPsiElement(o);
- }
-
- public void visitGlobalAssn(@NotNull SourcePawnGlobalAssn o) {
- visitPsiElement(o);
- }
-
- public void visitGlobalNew(@NotNull SourcePawnGlobalNew o) {
- visitPsiElement(o);
- }
-
- public void visitGlobalOld(@NotNull SourcePawnGlobalOld o) {
- visitPsiElement(o);
- }
-
- public void visitLabel(@NotNull SourcePawnLabel o) {
- visitPsiElement(o);
- }
-
- public void visitLiteral(@NotNull SourcePawnLiteral o) {
- visitPsiElement(o);
- }
-
- public void visitNewDims(@NotNull SourcePawnNewDims o) {
- visitPsiElement(o);
- }
-
- public void visitNumber(@NotNull SourcePawnNumber o) {
- visitPsiElement(o);
- }
-
- public void visitOldDims(@NotNull SourcePawnOldDims o) {
- visitPsiElement(o);
- }
-
- public void visitReturnNew(@NotNull SourcePawnReturnNew o) {
- visitPsiElement(o);
- }
-
- public void visitReturnOld(@NotNull SourcePawnReturnOld o) {
- visitPsiElement(o);
- }
-
- public void visitReturnType(@NotNull SourcePawnReturnType o) {
- visitPsiElement(o);
- }
-
- public void visitStorageClass(@NotNull SourcePawnStorageClass o) {
- visitPsiElement(o);
- }
-
- public void visitTag(@NotNull SourcePawnTag o) {
- visitPsiElement(o);
- }
-
- public void visitTagVector(@NotNull SourcePawnTagVector o) {
- visitPsiElement(o);
- }
-
- public void visitTags(@NotNull SourcePawnTags o) {
- visitPsiElement(o);
- }
-
- public void visitTypeExpr(@NotNull SourcePawnTypeExpr o) {
- visitPsiElement(o);
- }
-
- public void visitVarNew(@NotNull SourcePawnVarNew o) {
- visitPsiElement(o);
- }
-
- public void visitVarNewPrefix(@NotNull SourcePawnVarNewPrefix o) {
- visitPsiElement(o);
- }
-
- public void visitVarOld(@NotNull SourcePawnVarOld o) {
- visitPsiElement(o);
- }
-
- public void visitVarOldPrefix(@NotNull SourcePawnVarOldPrefix o) {
- visitPsiElement(o);
- }
-
- public void visitVardecl(@NotNull SourcePawnVardecl o) {
- visitPsiElement(o);
- }
-
- public void visitPsiElement(@NotNull PsiElement o) {
- visitElement(o);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnArgInitImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnArgInitImpl.java
deleted file mode 100644
index 2af9cd8..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnArgInitImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnArgInitImpl extends ASTWrapperPsiElement implements SourcePawnArgInit {
-
- public SourcePawnArgInitImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitArgInit(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnLiteral getLiteral() {
- return findChildByClass(SourcePawnLiteral.class);
- }
-
- @Override
- @Nullable
- public PsiElement getSymbol() {
- return findChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnArgNewImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnArgNewImpl.java
deleted file mode 100644
index 343e231..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnArgNewImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnArgNewImpl extends ASTWrapperPsiElement implements SourcePawnArgNew {
-
- public SourcePawnArgNewImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitArgNew(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnArgInit getArgInit() {
- return findChildByClass(SourcePawnArgInit.class);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
- @Override
- @NotNull
- public SourcePawnTypeExpr getTypeExpr() {
- return findNotNullChildByClass(SourcePawnTypeExpr.class);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnArgOldImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnArgOldImpl.java
deleted file mode 100644
index de43a3f..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnArgOldImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnArgOldImpl extends ASTWrapperPsiElement implements SourcePawnArgOld {
-
- public SourcePawnArgOldImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitArgOld(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnArgInit getArgInit() {
- return findChildByClass(SourcePawnArgInit.class);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
- @Override
- @Nullable
- public SourcePawnTags getTags() {
- return findChildByClass(SourcePawnTags.class);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnArgdeclImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnArgdeclImpl.java
deleted file mode 100644
index 225a3dc..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnArgdeclImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnArgdeclImpl extends ASTWrapperPsiElement implements SourcePawnArgdecl {
-
- public SourcePawnArgdeclImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitArgdecl(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnArgNew getArgNew() {
- return findChildByClass(SourcePawnArgNew.class);
- }
-
- @Override
- @Nullable
- public SourcePawnArgOld getArgOld() {
- return findChildByClass(SourcePawnArgOld.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnBuiltinTypeImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnBuiltinTypeImpl.java
deleted file mode 100644
index 8235ad8..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnBuiltinTypeImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnBuiltinTypeImpl extends ASTWrapperPsiElement implements SourcePawnBuiltinType {
-
- public SourcePawnBuiltinTypeImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitBuiltinType(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnGlobalAssnImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnGlobalAssnImpl.java
deleted file mode 100644
index da2407c..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnGlobalAssnImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnGlobalAssnImpl extends ASTWrapperPsiElement implements SourcePawnGlobalAssn {
-
- public SourcePawnGlobalAssnImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitGlobalAssn(this);
- else super.accept(visitor);
- }
-
- @Override
- @NotNull
- public SourcePawnGlobal getGlobal() {
- return findNotNullChildByClass(SourcePawnGlobal.class);
- }
-
- @Override
- @NotNull
- public SourcePawnLiteral getLiteral() {
- return findNotNullChildByClass(SourcePawnLiteral.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnGlobalImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnGlobalImpl.java
deleted file mode 100644
index 19114bf..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnGlobalImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnGlobalImpl extends ASTWrapperPsiElement implements SourcePawnGlobal {
-
- public SourcePawnGlobalImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitGlobal(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnGlobalNew getGlobalNew() {
- return findChildByClass(SourcePawnGlobalNew.class);
- }
-
- @Override
- @Nullable
- public SourcePawnGlobalOld getGlobalOld() {
- return findChildByClass(SourcePawnGlobalOld.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnGlobalNewImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnGlobalNewImpl.java
deleted file mode 100644
index 65db8ec..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnGlobalNewImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnGlobalNewImpl extends ASTWrapperPsiElement implements SourcePawnGlobalNew {
-
- public SourcePawnGlobalNewImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitGlobalNew(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
- @Override
- @NotNull
- public List getStorageClassList() {
- return PsiTreeUtil.getChildrenOfTypeAsList(this, SourcePawnStorageClass.class);
- }
-
- @Override
- @NotNull
- public SourcePawnTypeExpr getTypeExpr() {
- return findNotNullChildByClass(SourcePawnTypeExpr.class);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnGlobalOldImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnGlobalOldImpl.java
deleted file mode 100644
index 95a5d66..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnGlobalOldImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnGlobalOldImpl extends ASTWrapperPsiElement implements SourcePawnGlobalOld {
-
- public SourcePawnGlobalOldImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitGlobalOld(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
- @Override
- @NotNull
- public List getStorageClassList() {
- return PsiTreeUtil.getChildrenOfTypeAsList(this, SourcePawnStorageClass.class);
- }
-
- @Override
- @Nullable
- public SourcePawnTag getTag() {
- return findChildByClass(SourcePawnTag.class);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnLabelImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnLabelImpl.java
deleted file mode 100644
index b09d76e..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnLabelImpl.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnLabelImpl extends ASTWrapperPsiElement implements SourcePawnLabel {
-
- public SourcePawnLabelImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitLabel(this);
- else super.accept(visitor);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnLiteralImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnLiteralImpl.java
deleted file mode 100644
index ee87fe7..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnLiteralImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnLiteralImpl extends ASTWrapperPsiElement implements SourcePawnLiteral {
-
- public SourcePawnLiteralImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitLiteral(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnNumber getNumber() {
- return findChildByClass(SourcePawnNumber.class);
- }
-
- @Override
- @Nullable
- public PsiElement getCharacterLiteral() {
- return findChildByType(CHARACTER_LITERAL);
- }
-
- @Override
- @Nullable
- public PsiElement getStringLiteral() {
- return findChildByType(STRING_LITERAL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnNewDimsImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnNewDimsImpl.java
deleted file mode 100644
index ada6ea1..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnNewDimsImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnNewDimsImpl extends ASTWrapperPsiElement implements SourcePawnNewDims {
-
- public SourcePawnNewDimsImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitNewDims(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnNumberImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnNumberImpl.java
deleted file mode 100644
index 6db26ac..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnNumberImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnNumberImpl extends ASTWrapperPsiElement implements SourcePawnNumber {
-
- public SourcePawnNumberImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitNumber(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public PsiElement getFloatLiteral() {
- return findChildByType(FLOAT_LITERAL);
- }
-
- @Override
- @Nullable
- public PsiElement getHexLiteral() {
- return findChildByType(HEX_LITERAL);
- }
-
- @Override
- @Nullable
- public PsiElement getIntegerLiteral() {
- return findChildByType(INTEGER_LITERAL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnOldDimsImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnOldDimsImpl.java
deleted file mode 100644
index 29c85b5..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnOldDimsImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnOldDimsImpl extends ASTWrapperPsiElement implements SourcePawnOldDims {
-
- public SourcePawnOldDimsImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitOldDims(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnReturnNewImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnReturnNewImpl.java
deleted file mode 100644
index b937f10..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnReturnNewImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnReturnNewImpl extends ASTWrapperPsiElement implements SourcePawnReturnNew {
-
- public SourcePawnReturnNewImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitReturnNew(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnNewDims getNewDims() {
- return findChildByClass(SourcePawnNewDims.class);
- }
-
- @Override
- @NotNull
- public SourcePawnTypeExpr getTypeExpr() {
- return findNotNullChildByClass(SourcePawnTypeExpr.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnReturnOldImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnReturnOldImpl.java
deleted file mode 100644
index e940f31..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnReturnOldImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnReturnOldImpl extends ASTWrapperPsiElement implements SourcePawnReturnOld {
-
- public SourcePawnReturnOldImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitReturnOld(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnLabel getLabel() {
- return findChildByClass(SourcePawnLabel.class);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnReturnTypeImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnReturnTypeImpl.java
deleted file mode 100644
index 7adb57f..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnReturnTypeImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnReturnTypeImpl extends ASTWrapperPsiElement implements SourcePawnReturnType {
-
- public SourcePawnReturnTypeImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitReturnType(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnReturnNew getReturnNew() {
- return findChildByClass(SourcePawnReturnNew.class);
- }
-
- @Override
- @Nullable
- public SourcePawnReturnOld getReturnOld() {
- return findChildByClass(SourcePawnReturnOld.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnStorageClassImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnStorageClassImpl.java
deleted file mode 100644
index ebf8cd6..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnStorageClassImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnStorageClassImpl extends ASTWrapperPsiElement implements SourcePawnStorageClass {
-
- public SourcePawnStorageClassImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitStorageClass(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnTagImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnTagImpl.java
deleted file mode 100644
index 91480a9..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnTagImpl.java
+++ /dev/null
@@ -1,31 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnTagImpl extends ASTWrapperPsiElement implements SourcePawnTag {
-
- public SourcePawnTagImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitTag(this);
- else super.accept(visitor);
- }
-
- @Override
- @NotNull
- public SourcePawnLabel getLabel() {
- return findNotNullChildByClass(SourcePawnLabel.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnTagVectorImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnTagVectorImpl.java
deleted file mode 100644
index d4cf1a4..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnTagVectorImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnTagVectorImpl extends ASTWrapperPsiElement implements SourcePawnTagVector {
-
- public SourcePawnTagVectorImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitTagVector(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnTagsImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnTagsImpl.java
deleted file mode 100644
index 8a52308..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnTagsImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnTagsImpl extends ASTWrapperPsiElement implements SourcePawnTags {
-
- public SourcePawnTagsImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitTags(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnTag getTag() {
- return findChildByClass(SourcePawnTag.class);
- }
-
- @Override
- @Nullable
- public SourcePawnTagVector getTagVector() {
- return findChildByClass(SourcePawnTagVector.class);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnTypeExprImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnTypeExprImpl.java
deleted file mode 100644
index 032dc41..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnTypeExprImpl.java
+++ /dev/null
@@ -1,43 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnTypeExprImpl extends ASTWrapperPsiElement implements SourcePawnTypeExpr {
-
- public SourcePawnTypeExprImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitTypeExpr(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnBuiltinType getBuiltinType() {
- return findChildByClass(SourcePawnBuiltinType.class);
- }
-
- @Override
- @Nullable
- public SourcePawnNewDims getNewDims() {
- return findChildByClass(SourcePawnNewDims.class);
- }
-
- @Override
- @Nullable
- public PsiElement getSymbol() {
- return findChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnVarNewImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnVarNewImpl.java
deleted file mode 100644
index a6bebad..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnVarNewImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnVarNewImpl extends ASTWrapperPsiElement implements SourcePawnVarNew {
-
- public SourcePawnVarNewImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitVarNew(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
- @Override
- @NotNull
- public SourcePawnTypeExpr getTypeExpr() {
- return findNotNullChildByClass(SourcePawnTypeExpr.class);
- }
-
- @Override
- @NotNull
- public SourcePawnVarNewPrefix getVarNewPrefix() {
- return findNotNullChildByClass(SourcePawnVarNewPrefix.class);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnVarNewPrefixImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnVarNewPrefixImpl.java
deleted file mode 100644
index 668889e..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnVarNewPrefixImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnVarNewPrefixImpl extends ASTWrapperPsiElement implements SourcePawnVarNewPrefix {
-
- public SourcePawnVarNewPrefixImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitVarNewPrefix(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnVarOldImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnVarOldImpl.java
deleted file mode 100644
index fdd018e..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnVarOldImpl.java
+++ /dev/null
@@ -1,49 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnVarOldImpl extends ASTWrapperPsiElement implements SourcePawnVarOld {
-
- public SourcePawnVarOldImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitVarOld(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnOldDims getOldDims() {
- return findChildByClass(SourcePawnOldDims.class);
- }
-
- @Override
- @Nullable
- public SourcePawnTag getTag() {
- return findChildByClass(SourcePawnTag.class);
- }
-
- @Override
- @NotNull
- public SourcePawnVarOldPrefix getVarOldPrefix() {
- return findNotNullChildByClass(SourcePawnVarOldPrefix.class);
- }
-
- @Override
- @NotNull
- public PsiElement getSymbol() {
- return findNotNullChildByType(SYMBOL);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnVarOldPrefixImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnVarOldPrefixImpl.java
deleted file mode 100644
index c3e5c00..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnVarOldPrefixImpl.java
+++ /dev/null
@@ -1,25 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnVarOldPrefixImpl extends ASTWrapperPsiElement implements SourcePawnVarOldPrefix {
-
- public SourcePawnVarOldPrefixImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitVarOldPrefix(this);
- else super.accept(visitor);
- }
-
-}
diff --git a/gen/org/idea_sp/psi/impl/SourcePawnVardeclImpl.java b/gen/org/idea_sp/psi/impl/SourcePawnVardeclImpl.java
deleted file mode 100644
index 4968792..0000000
--- a/gen/org/idea_sp/psi/impl/SourcePawnVardeclImpl.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// This is a generated file. Not intended for manual editing.
-package org.idea_sp.psi.impl;
-
-import java.util.List;
-import org.jetbrains.annotations.*;
-import com.intellij.lang.ASTNode;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiElementVisitor;
-import com.intellij.psi.util.PsiTreeUtil;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-import com.intellij.extapi.psi.ASTWrapperPsiElement;
-import org.idea_sp.psi.*;
-
-public class SourcePawnVardeclImpl extends ASTWrapperPsiElement implements SourcePawnVardecl {
-
- public SourcePawnVardeclImpl(ASTNode node) {
- super(node);
- }
-
- public void accept(@NotNull PsiElementVisitor visitor) {
- if (visitor instanceof SourcePawnVisitor) ((SourcePawnVisitor)visitor).visitVardecl(this);
- else super.accept(visitor);
- }
-
- @Override
- @Nullable
- public SourcePawnVarNew getVarNew() {
- return findChildByClass(SourcePawnVarNew.class);
- }
-
- @Override
- @Nullable
- public SourcePawnVarOld getVarOld() {
- return findChildByClass(SourcePawnVarOld.class);
- }
-
-}
diff --git a/gradle.properties b/gradle.properties
new file mode 100644
index 0000000..11e656e
--- /dev/null
+++ b/gradle.properties
@@ -0,0 +1,8 @@
+ideaVersion=IU-2019.3
+customSinceBuild=193.4386
+customUntilBuild=201.*
+buildNumber=SNAPSHOT
+publishUsername={username}
+publishPassword={password}
+publishChannel={channel}
+pluginVersion=0.0.1
\ No newline at end of file
diff --git a/grammar/sourcepawn-grammar.bnf b/grammar/sourcepawn-grammar.bnf
new file mode 100644
index 0000000..8d74de9
--- /dev/null
+++ b/grammar/sourcepawn-grammar.bnf
@@ -0,0 +1,308 @@
+{
+ generate=[java="8" names="long" visitor-value="R"]
+ parserClass="tf.ngs.sp.lang.SourcePawnParser"
+
+ extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
+
+ psiClassPrefix="SourcePawn"
+ psiImplClassSuffix="Impl"
+ psiPackage="tf.ngs.sp.lang.psi"
+ psiImplPackage="tf.ngs.sp.lang.psi.impl"
+
+ elementTypeHolderClass="tf.ngs.sp.lang.psi.SourcePawnTypes"
+ elementTypeClass="tf.ngs.sp.lang.SourcePawnElementType"
+ tokenTypeClass="tf.ngs.sp.lang.SourcePawnTokenType"
+ generateFirstCheck=50
+
+ consumeTokenMethod(".*_expr|expr")="consumeTokenFast"
+
+ tokens = [
+// space='regexp:\s+'
+ EQ="="
+ EXCL="!"
+ TILDE="~"
+ QUEST="?"
+ COLON=":"
+ PLUS="+"
+ MINUS="-"
+ ASTERISK="*"
+ DIV="/"
+ OR="|"
+ XOR="^"
+ PERC="%"
+ LPAREN="("
+ RPAREN=")"
+ LBRACE="{"
+ RBRACE="}"
+ LBRACKET="["
+ RBRACKET="]"
+ SEMICOLON=";"
+ COMMA=","
+ ELLIPSIS="..."
+ DOT="."
+ EQEQ="=="
+ NE="!="
+ OROR="||"
+ PLUSPLUS="++"
+ MINUSMINUS="--"
+ LT="<"
+ LE="<="
+ LTLT="<<"
+ GT=">"
+ GE=">="
+ GTGT=">>"
+ AND="&"
+ ANDAND="&&"
+ PLUSEQ="+="
+ MINUSEQ="-="
+ ASTERISKEQ="*="
+ DIVEQ="/="
+ ANDEQ="&="
+ OREQ="|="
+ XOREQ="^="
+ PERCEQ="%="
+ LTLTEQ="<<="
+ GTGTEQ=">>="
+
+ ASSERT_KEYWORD="assert"
+ BREAK_KEYWORD="break"
+ CASE_KEYWORD="case"
+ CONTINUE_KEYWORD="continue"
+ DEFAULT_KEYWORD="default"
+ DO_KEYWORD="do"
+ ELSE_KEYWORD="else"
+ EXIT_KEYWORD="exit"
+ FOR_KEYWORD="for"
+ GOTO_KEYWORD="goto"
+ IF_KEYWORD="if"
+ RETURN_KEYWORD="return"
+ SLEEP_KEYWORD="sleep"
+ STATE_KEYWORD="state"
+ SWITCH_KEYWORD="switch"
+ WHILE_KEYWORD="while"
+ DELETE_KEYWORD="delete"
+
+ DEFINED_KEYWORD="defined"
+ STATE_KEYWORD="state"
+ TAGOF_KEYWORD="tagof"
+
+ CONST_KEYWORD="const"
+ FORWARD_KEYWORD="forward"
+ NATIVE_KEYWORD="native"
+ NEW_KEYWORD="new"
+ OPERATOR_KEYWORD="operator"
+ PUBLIC_KEYWORD="public"
+ STATIC_KEYWORD="static"
+ STOCK_KEYWORD="stock"
+ USING_KEYWORD="using"
+
+ CHAR_KEYWORD="char"
+ INT_KEYWORD="int"
+ FLOAT_KEYWORD="float"
+ BOOL_KEYWORD="bool"
+ VOID_KEYWORD="void"
+ ANY_KEYWORD="any"
+
+ DECL_KEYWORD="decl"
+ NEW_KEYWORD="new"
+ PUBLIC_KEYWORD="public"
+ FUNCTAG_KEYWORD="functag"
+ METHODMAP_KEYWORD="methodmap"
+ PROPERTY_KEYWORD="property"
+ TYPEDEF_KEYWORD="typedef"
+ GET_KEYWORD="get"
+ SET_KEYWORD="set"
+
+ // SourcePawn-specific keywords
+ ENUM_KEYWORD="enum"
+ STRUCT_KEYWORD="struct"
+
+ TRUE_KEYWORD="true"
+ FALSE_KEYWORD="false"
+
+ SPACE="regexp:[ \s]"
+
+ line_comment="regexp://[^\r\n]*"
+ block_comment="regexp:/\*([^*]|(\*+[^*/]))*\*+/"
+ preprocessor_comment="regexp:#(assert|define|else|elseif|endif|endinput|error|file|if|include|line|pragma|section|tryinclude|undef)[^\r\n]*"
+
+ integer_literal="regexp:\d[_\d]*"
+ float_literal="regexp:\d[_\d]*\.\d[_\d]*(e[-+]?\d+)?"
+ hex_literal="regexp:0x[a-fA-F0-9_]+"
+ binary_literal="regexp:0b[01_]+"
+
+ string_literal="regexp:\"(\\.|[^\"])*\""
+ character_literal="regexp:'(\\.|[^\"])'"
+
+ // @ and _ are not themselves valid identifiers.
+ SYMBOL="regexp:([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)"
+
+
+ // Below is from an attempt to use dvander's grammar as a base
+ // See https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Grammar
+ ]
+
+ extends(".*_expr_r")=expr
+}
+
+root ::= root_item*
+private root_item ::= comment
+ | function
+ | global_assn
+ | methodmap
+ | enum-struct
+ | enum-block
+ | using
+ | typedef
+
+global_assn ::= global ((EQ (literal_expr_r SEMICOLON | struct_block SEMICOLON? | literal_list_block SEMICOLON)) | SEMICOLON)
+
+struct_block ::= LBRACE struct_decls* RBRACE
+
+struct_decls ::= SYMBOL EQ (literal_expr_r | SYMBOL) COMMA?
+
+literal_list_block ::= LBRACE <> RBRACE
+
+comment ::= BLOCK_COMMENT | LINE_COMMENT
+
+function ::= normalFunctionDeclaration | funcenumDeclaration | functagDeclaration | bareFunctionDeclaration
+
+private normalFunctionDeclaration ::= global_without_name function_name LPAREN functionParameterList? RPAREN block
+private bareFunctionDeclaration ::= (FORWARD_KEYWORD | NATIVE_KEYWORD)? global_without_name function_name LPAREN functionParameterList? RPAREN SEMICOLON
+
+private functagDeclaration ::= FUNCTAG_KEYWORD (OTHER_PUBLIC SYMBOL | SYMBOL SYMBOL? PUBLIC_KEYWORD) BRACKET_PAREN_L functionParameterList? BRACKET_PAREN_R
+
+functionParameterList ::= <>
+
+block ::= LBRACE blockStatement* RBRACE
+
+blockStatement ::= vardecl | statement
+
+statement ::= statementWithoutSubstatement SEMICOLON | block | returnStatement SEMICOLON | varAssignment SEMICOLON | expr SEMICOLON | switchStatement | doWhileStatement SEMICOLON | ifThenElse | ifThen | whileStatement | forStatement | deleteStatement
+
+statementWithoutSubstatement ::= BREAK_KEYWORD | CONTINUE_KEYWORD
+
+ifThen ::= IF_KEYWORD LPAREN expr RPAREN statement
+
+ifThenElse ::= IF_KEYWORD LPAREN expr RPAREN statement ELSE_KEYWORD statement
+
+whileStatement ::= WHILE_KEYWORD LPAREN expr RPAREN statement
+
+doWhileStatement ::= DO_KEYWORD statement WHILE_KEYWORD LPAREN expr RPAREN
+
+forStatement ::= FOR_KEYWORD LPAREN (expr SEMICOLON | vardecl | SEMICOLON) expr? SEMICOLON expr? RPAREN block
+
+switchStatement ::= SWITCH_KEYWORD LPAREN expr RPAREN LBRACE switchCase+ defaultSwitchCase RBRACE
+
+deleteStatement ::= DELETE_KEYWORD expr SEMICOLON
+
+returnStatement ::= RETURN_KEYWORD expr?
+
+varAssignment ::= expr varAssignmentOp expr { rightAssociative=true }
+
+varAssignmentOp ::= PLUSEQ | MINUSEQ | GTGTEQ | LTLTEQ | ASTERISKEQ | DIVEQ | OREQ | ANDEQ | XOREQ | PERCEQ
+
+switchCase ::= CASE_KEYWORD expr COLON block
+
+defaultSwitchCase ::= DEFAULT_KEYWORD COLON block
+
+expr ::= binop_expr_r | ternary_expr_r | parened_expr_r | call_expr_r | unop_expr_r | index_expr_r | literal_expr_r | term_expr_r
+
+ternary_expr_r ::= expr QUEST expr COLON expr { rightAssociative=true }
+
+index_expr_r ::= SYMBOL (LBRACKET expr RBRACKET)+
+
+binop_expr_r ::= expr binop expr
+
+call_expr_r ::= SYMBOL (LT type_expr GT)? LPAREN <>? RPAREN
+
+binop ::= DOT | EQEQ | NE | LE | LTLT | LT | GE | GTGT | GT | PLUS | MINUS | ASTERISK | DIV | OR | AND | PERC | OROR | ANDAND | EQ
+
+unop_expr_r ::= increm_expr_r | MINUS expr | EXCL expr | NEW_KEYWORD call_expr_r { rightAssociative=true }
+
+increm_expr_r ::= pre_increm_expr_r | post_increm_expr_r
+
+pre_increm_expr_r ::= PLUSPLUS SYMBOL | MINUSMINUS SYMBOL
+
+post_increm_expr_r ::= SYMBOL PLUSPLUS | SYMBOL MINUSMINUS
+
+parened_expr_r ::= LPAREN expr RPAREN | LPAREN expr EQ expr RPAREN
+
+term_expr_r ::= SYMBOL
+
+funcenumDeclaration ::= FUNCENUM_KEYWORD SYMBOL LBRACE funcenumBlock RBRACE
+funcenumBlock ::= <>
+funcenumBlockDeclaration ::= SYMBOL? PUBLIC_KEYWORD LPAREN functionParameterList? RPAREN
+
+meta dot_list ::= <> (DOT <>)*
+meta comma_list ::= <> (COMMA <>)*
+meta optional_comma_list ::= <> (COMMA <>)* COMMA?
+
+return_type ::= return_new
+return_new ::= type_expr old_dims?
+
+argdecl ::= arg_new
+arg_new ::= CONST_KEYWORD? type_expr AND? function_parameter old_dims? (EQ arg_init)?
+arg_init ::= literal_expr_r | SYMBOL
+
+function_parameter ::= SYMBOL
+
+vardecl ::= var_prefix* type_expr? SYMBOL old_dims? (EQ NEW_KEYWORD? expr)? (COMMA SYMBOL old_dims? (EQ NEW_KEYWORD? expr)?)* SEMICOLON
+var_prefix ::= STATIC_KEYWORD | CONST_KEYWORD
+
+global ::= global_old | global_new
+global_new ::= storage_class* type_expr new_dims* global_var_name
+global_old ::= storage_class* type_expr global_var_name old_dims*
+private global_without_name ::= storage_class* type_expr new_dims*
+global_var_name ::= SYMBOL
+function_name ::= SYMBOL
+
+storage_class ::= PUBLIC_KEYWORD | STATIC_KEYWORD | CONST_KEYWORD | STOCK_KEYWORD
+
+type_expr ::= (builtin_type | SYMBOL) new_dims?
+builtin_type ::= VOID_KEYWORD | INT_KEYWORD | FLOAT_KEYWORD | CHAR_KEYWORD | BOOL_KEYWORD | ANY_KEYWORD
+
+new_dims ::= new_dim+
+old_dims ::= old_dim+
+
+new_dim ::= LBRACKET RBRACKET
+old_dim ::= LBRACKET expr RBRACKET
+
+literal_expr_r ::= number | bool_literal | string_literal | character_literal
+number ::= integer_literal | hex_literal | float_literal
+bool_literal ::= TRUE_KEYWORD | FALSE_KEYWORD
+
+visibility ::= PUBLIC_KEYWORD
+method-args ::= arg_new* ELLIPSIS?
+
+methodmap_name ::= SYMBOL
+
+methodmap ::= METHODMAP_KEYWORD methodmap_name (LT SYMBOL)? LBRACE methodmap-item* RBRACE SEMICOLON?
+methodmap-item ::=
+ visibility? TILDE? SYMBOL LPAREN RPAREN EQ SYMBOL SEMICOLON
+ | visibility? NATIVE_KEYWORD type_expr TILDE? SYMBOL LPAREN <> RPAREN SEMICOLON
+ | visibility? type_expr SYMBOL LPAREN <> RPAREN block
+ | PROPERTY_KEYWORD type_expr SYMBOL { property-decl }
+property-func ::= GET_KEYWORD | SET_KEYWORD
+property-decl ::= visibility property-impl
+property-impl ::=
+ NATIVE_KEYWORD property-func LPAREN RPAREN
+ | property-func LPAREN RPAREN block
+ | property-func LPAREN RPAREN EQ SYMBOL SEMICOLON
+
+enum-struct ::= ENUM_KEYWORD STRUCT_KEYWORD SYMBOL LBRACE enum-struct-entry+ RBRACE SEMICOLON?
+enum-struct-entry ::= enum-struct-field
+ | enum-struct-method
+enum-struct-field ::= type_expr SYMBOL old_dims? SEMICOLON
+enum-struct-method ::= type_expr SYMBOL LPAREN method-args RPAREN block SEMICOLON? // was functionBlock instead of block, unsure why
+
+enum-block ::= ENUM_KEYWORD SYMBOL LBRACE <> RBRACE SEMICOLON
+enum-block-entry ::= SYMBOL (EQ number)?
+
+using ::= USING_KEYWORD <> SEMICOLON
+
+typedef ::= TYPEDEF_KEYWORD SYMBOL EQ full-type-expr
+full-type-expr ::= LPAREN type_expr RPAREN
+ | type_expr
+//typedef-args ::= ELLIPSIS
+// | typedef-arg (", " ELLIPSIS)?
\ No newline at end of file
diff --git a/grammar/sourcepawn-lexer.flex b/grammar/sourcepawn-lexer.flex
new file mode 100644
index 0000000..b9263d2
--- /dev/null
+++ b/grammar/sourcepawn-lexer.flex
@@ -0,0 +1,263 @@
+package tf.ngs.sp.lang;
+
+import com.intellij.lexer.FlexLexer;
+import com.intellij.psi.tree.IElementType;
+import com.intellij.psi.TokenType;
+import com.intellij.util.containers.*;
+import tf.ngs.sp.lang.psi.SourcePawnTypes;
+
+%%
+
+%{
+ public SourcePawnLexer() {
+ this(null);
+ }
+%}
+
+%class SourcePawnLexer
+%implements FlexLexer
+%function advance
+%type IElementType
+%unicode
+%eof{ return;
+%eof}
+
+EOL="\n"|"\r\n"
+LINE_WS=[ \t\f]
+WHITE_SPACE=({LINE_WS}|{EOL})+
+
+SPACE=[\s]
+LINE_COMMENT="//"[^\r\n]*
+BLOCK_COMMENT=\/\*~(\*\/)
+PREPROCESSOR_COMMENT=#(assert|define|else|elseif|endif|endinput|error|file|if|include|line|pragma|section|tryinclude|undef)[^\r\n]*
+INTEGER_LITERAL=[0-9][_\d]*
+FLOAT_LITERAL=[0-9][_\d]*\.[0-9][_\d]*(e[-+]?[0-9]+)?
+HEX_LITERAL=0x[a-fA-F0-9_]+
+BINARY_LITERAL=0b[01_]+
+STRING_LITERAL=\"(\\.|[^\"])*\"
+CHARACTER_LITERAL='(\\.|[^\"])'
+SYMBOL=([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)
+
+EQ="="
+EXCL="!"
+TILDE="~"
+QUEST="?"
+COLON=":"
+PLUS="+"
+MINUS="-"
+ASTERISK="*"
+DIV="/"
+OR="|"
+XOR="^"
+PERC="%"
+LPAREN="("
+RPAREN=")"
+LBRACE="{"
+RBRACE="}"
+LBRACKET="["
+RBRACKET="]"
+SEMICOLON=";"
+COMMA=","
+ELLIPSIS="..."
+DOT="."
+EQEQ="=="
+NE="!="
+OROR="||"
+PLUSPLUS="++"
+MINUSMINUS="--"
+LT="<"
+LE="<="
+LTLT="<<"
+GT=">"
+GTGT=">>"
+AND="&"
+ANDAND="&&"
+PLUSEQ="+="
+MINUSEQ="-="
+ASTERISKEQ="*="
+DIVEQ="/="
+ANDEQ="&="
+OREQ="|="
+XOREQ="^="
+PERCEQ="%="
+LTLTEQ="<<="
+GTGTEQ=">>="
+
+ASSERT_KEYWORD="assert"
+BREAK_KEYWORD="break"
+CASE_KEYWORD="case"
+CONTINUE_KEYWORD="continue"
+DEFAULT_KEYWORD="default"
+DO_KEYWORD="do"
+ELSE_KEYWORD="else"
+EXIT_KEYWORD="exit"
+FOR_KEYWORD="for"
+GOTO_KEYWORD="goto"
+IF_KEYWORD="if"
+RETURN_KEYWORD="return"
+SLEEP_KEYWORD="sleep"
+STATE_KEYWORD="state"
+SWITCH_KEYWORD="switch"
+WHILE_KEYWORD="while"
+
+DEFINED_KEYWORD="defined"
+STATE_KEYWORD="state"
+TAGOF_KEYWORD="tagof"
+
+CONST_KEYWORD="const"
+FORWARD_KEYWORD="forward"
+NATIVE_KEYWORD="native"
+NEW_KEYWORD="new"
+OPERATOR_KEYWORD="operator"
+PUBLIC_KEYWORD="public"
+STATIC_KEYWORD="static"
+STOCK_KEYWORD="stock"
+
+CHAR_KEYWORD="char"
+INT_KEYWORD="int"
+FLOAT_KEYWORD="float"
+BOOL_KEYWORD="bool"
+VOID_KEYWORD="void"
+ANY_KEYWORD="any"
+
+DECL_KEYWORD="decl"
+NEW_KEYWORD="new"
+PUBLIC_KEYWORD="public"
+FUNCTAG_KEYWORD="functag"
+
+// SourcePawn-specific keywords
+ENUM_KEYWORD="enum"
+STRUCT_KEYWORD="struct"
+USING_KEYWORD="using"
+PROPERTY_KEYWORD="property"
+
+TRUE_KEYWORD="true"
+FALSE_KEYWORD="false"
+
+SPACE="regexp:[\s]"
+
+//line_comment="regexp://[^\r\n]*"
+//block_comment="regexp:/\*~(\*/)"
+//preprocessor_comment="regexp:#(assert|define|else|elseif|endif|endinput|error|file|if|include|line|pragma|section|tryinclude|undef)[^\r\n]*"
+
+//integer_literal="regexp:[-+]?\d[_\d]*"
+//float_literal="regexp:[-+]?\d[_\d]*\.\d[_\d]*(e[-+]?\d+)?"
+//hex_literal="regexp:[-+]?0x[a-fA-F0-9_]+"
+//binary_literal="regexp:[-+]?0b[01_]+"
+
+//string_literal="regexp:\"(\\.|[^\"])*\""
+//character_literal="regexp:'(\\.|[^\"])'"
+
+// @ and _ are not themselves valid identifiers.
+//identifier="regexp:([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)"
+
+
+// Below is from an attempt to use dvander's grammar as a base
+// See https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Grammar
+
+// This is dvander's symbol. It doesn't handle all the edge cases Pawn allows (the one below it tries to)
+// symbol="regexp:[A-Za-z_]([A-Za-z0-9_]*)"
+
+//symbol="regexp:([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)"
+
+%%
+ {
+ {WHITE_SPACE} { return TokenType.WHITE_SPACE; }
+ {LINE_COMMENT} { return SourcePawnTypes.LINE_COMMENT; }
+ {BLOCK_COMMENT} { return SourcePawnTypes.BLOCK_COMMENT; }
+ {PREPROCESSOR_COMMENT} { return SourcePawnTypes.PREPROCESSOR_COMMENT; }
+
+ "=" { return SourcePawnTypes.EQ; }
+ "!" { return SourcePawnTypes.EXCL; }
+ "~" { return SourcePawnTypes.TILDE; }
+ "?" { return SourcePawnTypes.QUEST; }
+ ":" { return SourcePawnTypes.COLON; }
+ "+" { return SourcePawnTypes.PLUS; }
+ "-" { return SourcePawnTypes.MINUS; }
+ "*" { return SourcePawnTypes.ASTERISK; }
+ "/" { return SourcePawnTypes.DIV; }
+ "|" { return SourcePawnTypes.OR; }
+ "^" { return SourcePawnTypes.XOR; }
+ "%" { return SourcePawnTypes.PERC; }
+ "(" { return SourcePawnTypes.LPAREN; }
+ ")" { return SourcePawnTypes.RPAREN; }
+ "{" { return SourcePawnTypes.LBRACE; }
+ "}" { return SourcePawnTypes.RBRACE; }
+ "[" { return SourcePawnTypes.LBRACKET; }
+ "]" { return SourcePawnTypes.RBRACKET; }
+ ";" { return SourcePawnTypes.SEMICOLON; }
+ "," { return SourcePawnTypes.COMMA; }
+ "..." { return SourcePawnTypes.ELLIPSIS; }
+ "." { return SourcePawnTypes.DOT; }
+ "==" { return SourcePawnTypes.EQEQ; }
+ "!=" { return SourcePawnTypes.NE; }
+ "||" { return SourcePawnTypes.OROR; }
+ "++" { return SourcePawnTypes.PLUSPLUS; }
+ "--" { return SourcePawnTypes.MINUSMINUS; }
+ "<" { return SourcePawnTypes.LT; }
+ "<=" { return SourcePawnTypes.LE; }
+ "<<" { return SourcePawnTypes.LTLT; }
+ ">" { return SourcePawnTypes.GT; }
+ ">=" { return SourcePawnTypes.GE; }
+ ">>" { return SourcePawnTypes.GTGT; }
+ "&" { return SourcePawnTypes.AND; }
+ "&&" { return SourcePawnTypes.ANDAND; }
+ "+=" { return SourcePawnTypes.PLUSEQ; }
+ "-=" { return SourcePawnTypes.MINUSEQ; }
+ "*=" { return SourcePawnTypes.ASTERISKEQ; }
+ "/=" { return SourcePawnTypes.DIVEQ; }
+ "&=" { return SourcePawnTypes.ANDEQ; }
+ "|=" { return SourcePawnTypes.OREQ; }
+ "^=" { return SourcePawnTypes.XOREQ; }
+ "%=" { return SourcePawnTypes.PERCEQ; }
+ "<<=" { return SourcePawnTypes.LTLTEQ; }
+ ">>=" { return SourcePawnTypes.GTGTEQ; }
+ "assert" { return SourcePawnTypes.ASSERT_KEYWORD; }
+ "break" { return SourcePawnTypes.BREAK_KEYWORD; }
+ "case" { return SourcePawnTypes.CASE_KEYWORD; }
+ "continue" { return SourcePawnTypes.CONTINUE_KEYWORD; }
+ "default" { return SourcePawnTypes.DEFAULT_KEYWORD; }
+ "do" { return SourcePawnTypes.DO_KEYWORD; }
+ "else" { return SourcePawnTypes.ELSE_KEYWORD; }
+ "exit" { return SourcePawnTypes.EXIT_KEYWORD; }
+ "for" { return SourcePawnTypes.FOR_KEYWORD; }
+ "goto" { return SourcePawnTypes.GOTO_KEYWORD; }
+ "if" { return SourcePawnTypes.IF_KEYWORD; }
+ "return" { return SourcePawnTypes.RETURN_KEYWORD; }
+ "sleep" { return SourcePawnTypes.SLEEP_KEYWORD; }
+ "state" { return SourcePawnTypes.STATE_KEYWORD; }
+ "switch" { return SourcePawnTypes.SWITCH_KEYWORD; }
+ "while" { return SourcePawnTypes.WHILE_KEYWORD; }
+ "defined" { return SourcePawnTypes.DEFINED_KEYWORD; }
+ "tagof" { return SourcePawnTypes.TAGOF_KEYWORD; }
+ "const" { return SourcePawnTypes.CONST_KEYWORD; }
+ "forward" { return SourcePawnTypes.FORWARD_KEYWORD; }
+ "native" { return SourcePawnTypes.NATIVE_KEYWORD; }
+ "new" { return SourcePawnTypes.NEW_KEYWORD; }
+ "operator" { return SourcePawnTypes.OPERATOR_KEYWORD; }
+ "public" { return SourcePawnTypes.PUBLIC_KEYWORD; }
+ "static" { return SourcePawnTypes.STATIC_KEYWORD; }
+ "stock" { return SourcePawnTypes.STOCK_KEYWORD; }
+ "decl" { return SourcePawnTypes.DECL_KEYWORD; }
+ "enum" { return SourcePawnTypes.ENUM_KEYWORD; }
+ "struct" { return SourcePawnTypes.STRUCT_KEYWORD; }
+ "expr" { return SourcePawnTypes.EXPR; }
+
+ "char" { return SourcePawnTypes.CHAR_KEYWORD; }
+ "int" { return SourcePawnTypes.INT_KEYWORD; }
+ "bool" { return SourcePawnTypes.BOOL_KEYWORD; }
+ "float" { return SourcePawnTypes.FLOAT_KEYWORD; }
+ "void" { return SourcePawnTypes.VOID_KEYWORD; }
+ "any" { return SourcePawnTypes.ANY_KEYWORD; }
+
+// {SPACE} { return SourcePawnTypes.SPACE; }
+ {INTEGER_LITERAL} { return SourcePawnTypes.INTEGER_LITERAL; }
+ {FLOAT_LITERAL} { return SourcePawnTypes.FLOAT_LITERAL; }
+ {HEX_LITERAL} { return SourcePawnTypes.HEX_LITERAL; }
+ {BINARY_LITERAL} { return SourcePawnTypes.BINARY_LITERAL; }
+ {STRING_LITERAL} { return SourcePawnTypes.STRING_LITERAL; }
+ {CHARACTER_LITERAL} { return SourcePawnTypes.CHARACTER_LITERAL; }
+ {SYMBOL} { return SourcePawnTypes.SYMBOL; }
+
+ [^] { return TokenType.BAD_CHARACTER; }
+}
diff --git a/idea-sp.iml b/idea-sp.iml
index 5097538..4400844 100644
--- a/idea-sp.iml
+++ b/idea-sp.iml
@@ -1,11 +1,12 @@
-
+
+
diff --git a/res/META-INF/plugin.xml b/res/META-INF/plugin.xml
new file mode 100644
index 0000000..0764c57
--- /dev/null
+++ b/res/META-INF/plugin.xml
@@ -0,0 +1,19 @@
+
+ SourcePawn
+ tf.ngs.lang.SourcePawn
+ Adds language support for SourcePawn, a language used for plugin development with the Sourcemod framework.
+
+ First shot at making this plugin, based on y4kman's awesome Flex work.
+ 0.0.1
+ Neogenesis Network
+
+ com.intellij.modules.lang
+
+
+
+
+
+
+
+
+
diff --git a/res/META-INF/pluginIcon.svg b/res/META-INF/pluginIcon.svg
new file mode 100644
index 0000000..e58081b
--- /dev/null
+++ b/res/META-INF/pluginIcon.svg
@@ -0,0 +1,12 @@
+
+
+
+
diff --git a/src/org/idea_sp/icons/hl2.ico b/res/icons/hl2.ico
similarity index 100%
rename from src/org/idea_sp/icons/hl2.ico
rename to res/icons/hl2.ico
diff --git a/src/org/idea_sp/icons/hl2.png b/res/icons/hl2.png
similarity index 100%
rename from src/org/idea_sp/icons/hl2.png
rename to res/icons/hl2.png
diff --git a/settings.gradle.kts b/settings.gradle.kts
new file mode 100644
index 0000000..a76715a
--- /dev/null
+++ b/settings.gradle.kts
@@ -0,0 +1 @@
+rootProject.name = "idea-sp"
\ No newline at end of file
diff --git a/src/org/idea_sp/SourcePawn.bnf b/src/org/idea_sp/SourcePawn.bnf
deleted file mode 100644
index ff1b088..0000000
--- a/src/org/idea_sp/SourcePawn.bnf
+++ /dev/null
@@ -1,175 +0,0 @@
-
-{
- parserClass="org.idea_sp.parser.SourcePawnParser"
-
- extends="com.intellij.extapi.psi.ASTWrapperPsiElement"
-
- psiClassPrefix="SourcePawn"
- psiImplClassSuffix="Impl"
- psiPackage="org.idea_sp.psi"
- psiImplPackage="org.idea_sp.psi.impl"
-
- elementTypeHolderClass="org.idea_sp.psi.SourcePawnTypes"
- elementTypeClass="org.idea_sp.psi.SourcePawnElementType"
- tokenTypeClass="org.idea_sp.psi.SourcePawnTokenType"
-
- tokens = [
- EQ="="
- EXCL="!"
- TILDE="~"
- QUEST="?"
- COLON=":"
- PLUS="+"
- MINUS="-"
- ASTERISK="*"
- DIV="/"
- OR="|"
- XOR="^"
- PERC="%"
- LPAREN="("
- RPAREN=")"
- LBRACE="{"
- RBRACE="}"
- LBRACKET="["
- RBRACKET="]"
- SEMICOLON=";"
- COMMA=","
- ELLIPSIS="..."
- DOT="."
- EQEQ="=="
- NE="!="
- OROR="||"
- PLUSPLUS="++"
- MINUSMINUS="--"
- LT="<"
- LE="<="
- LTLT="<<"
- GT=">"
- AND="&"
- ANDAND="&&"
- PLUSEQ="+="
- MINUSEQ="-="
- ASTERISKEQ="*="
- DIVEQ="/="
- ANDEQ="&="
- OREQ="|="
- XOREQ="^="
- PERCEQ="%="
- LTLTEQ="<<="
- GTGTEQ=">>="
-
- ASSERT_KEYWORD="assert"
- BREAK_KEYWORD="break"
- CASE_KEYWORD="case"
- CONTINUE_KEYWORD="continue"
- DEFAULT_KEYWORD="default"
- DO_KEYWORD="do"
- ELSE_KEYWORD="else"
- EXIT_KEYWORD="exit"
- FOR_KEYWORD="for"
- GOTO_KEYWORD="goto"
- IF_KEYWORD="if"
- RETURN_KEYWORD="return"
- SLEEP_KEYWORD="sleep"
- STATE_KEYWORD="state"
- SWITCH_KEYWORD="switch"
- WHILE_KEYWORD="while"
-
- DEFINED_KEYWORD="defined"
- SIZEOF_KEYWORD="sizeof"
- STATE_KEYWORD="state"
- TAGOF_KEYWORD="tagof"
-
- CONST_KEYWORD="const"
- FORWARD_KEYWORD="forward"
- NATIVE_KEYWORD="native"
- NEW_KEYWORD="new"
- OPERATOR_KEYWORD="operator"
- PUBLIC_KEYWORD="public"
- STATIC_KEYWORD="static"
- STOCK_KEYWORD="stock"
-
- DECL_KEYWORD="decl"
- NEW_KEYWORD="new"
- PUBLIC_KEYWORD="public"
-
- // SourcePawn-specific keywords
- ENUM_KEYWORD="enum"
- STRUCT_KEYWORD="struct"
-
- // TODO: remove me (for live preview purposes only)
- SPACE="regexp:[\ \n\r\t\f]"
-
- line_comment="regexp://[^\r\n]*"
- block_comment="regexp:/\*(.|\n)*?\*/"
- preprocessor_comment="regexp:#(assert|define|else|elseif|endif|endinput|error|file|if|include|line|pragma|section|tryinclude|undef)[^\r\n]*"
-
- integer_literal="regexp:[-+]?\d[_\d]*"
- float_literal="regexp:[-+]?\d[_\d]*\.\d[_\d]*(e[-+]?\d+)?"
- hex_literal="regexp:[-+]?0x[a-fA-F0-9_]+"
- binary_literal="regexp:[-+]?0b[01_]+"
-
- string_literal="regexp:\"(\\.|[^\"])*\""
- character_literal="regexp:'(\\.|[^\"])'"
-
- // @ and _ are not themselves valid identifiers.
- identifier="regexp:([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)"
-
-
- // xxx///////////////
- // Below is from an attempt to use dvander's grammar as a base
- // See https://wiki.alliedmods.net/SourcePawn_Transitional_Syntax#Grammar
-
- // This is dvander's symbol. It doesn't handle all the edge cases Pawn allows
-// symbol="regexp:[A-Za-z_]([A-Za-z0-9_@]*)"
- symbol="regexp:([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)"
- ]
-}
-
-
-root ::= root_item *
-private root_item ::= global_assn SEMICOLON
-
-
-global_assn ::= global '=' literal
-
-
-return_type ::= return_old | return_new
-return_new ::= type_expr new_dims? // Note, dims not yet supported.
-return_old ::= old_dims? label?
-
-argdecl ::= arg_old | arg_new
-arg_new ::= "const"? type_expr '&'? symbol old_dims? ('=' arg_init)?
-arg_old ::= "const"? tags? '&'? symbol old_dims? ('=' arg_init)?
-arg_init ::= literal | symbol
-
-vardecl ::= var_old | var_new
-var_new ::= var_new_prefix type_expr symbol old_dims?
-var_new_prefix ::= "static" | "const"
-var_old ::= var_old_prefix tag? symbol old_dims?
-var_old_prefix ::= "new" | "decl" | "static" | "const"
-
-global ::= global_old | global_new
-global_new ::= storage_class* type_expr symbol old_dims?
-global_old ::= storage_class* tag? symbol old_dims?
-
-storage_class ::= "public" | "static" | "const" | "stock"
-
-type_expr ::= (builtin_type | symbol) new_dims?
-builtin_type ::= "void"
- | "int"
- | "float"
- | "char"
- | "bool"
-
-tags ::= tag_vector | tag
-tag_vector ::= '{' symbol (',' symbol)* '}' ':'
-tag ::= label
-
-new_dims ::= ('[' ']')*
-old_dims ::= ('[' expr? ']')+
-
-label ::= symbol ':'
-
-literal ::= number | string_literal | character_literal
-number ::= integer_literal | hex_literal | float_literal
diff --git a/src/org/idea_sp/SourcePawn.flex b/src/org/idea_sp/SourcePawn.flex
deleted file mode 100644
index 6fbbe30..0000000
--- a/src/org/idea_sp/SourcePawn.flex
+++ /dev/null
@@ -1,129 +0,0 @@
-package org.idea_sp;
-import com.intellij.lexer.*;
-import com.intellij.psi.tree.IElementType;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-
-%%
-
-%{
- public _SourcePawnLexer() {
- this((java.io.Reader)null);
- }
-%}
-
-%public
-%class _SourcePawnLexer
-%implements FlexLexer
-%function advance
-%type IElementType
-%unicode
-
-EOL="\r"|"\n"|"\r\n"
-LINE_WS=[\ \t\f]
-WHITE_SPACE=({LINE_WS}|{EOL})+
-
-SPACE=[\ \n\r\t\f]
-LINE_COMMENT="//"[^\r\n]*
-BLOCK_COMMENT="/"\*(.|\n)*?\*"/"
-PREPROCESSOR_COMMENT=#(assert|define|else|elseif|endif|endinput|error|file|if|include|line|pragma|section|tryinclude|undef)[^\r\n]*
-INTEGER_LITERAL=[-+]?[0-9][_\d]*
-FLOAT_LITERAL=[-+]?[0-9][_\d]*\.[0-9][_\d]*(e[-+]?[0-9]+)?
-HEX_LITERAL=[-+]?0x[a-fA-F0-9_]+
-BINARY_LITERAL=[-+]?0b[01_]+
-STRING_LITERAL=\"(\\.|[^\"])*\"
-CHARACTER_LITERAL='(\\.|[^\"])'
-SYMBOL=([@_a-zA-Z][@_a-zA-Z0-9]+|[a-zA-Z][@_a-zA-Z0-9]*)
-
-%%
- {
- {WHITE_SPACE} { return com.intellij.psi.TokenType.WHITE_SPACE; }
-
- "=" { return EQ; }
- "!" { return EXCL; }
- "~" { return TILDE; }
- "?" { return QUEST; }
- ":" { return COLON; }
- "+" { return PLUS; }
- "-" { return MINUS; }
- "*" { return ASTERISK; }
- "/" { return DIV; }
- "|" { return OR; }
- "^" { return XOR; }
- "%" { return PERC; }
- "(" { return LPAREN; }
- ")" { return RPAREN; }
- "{" { return LBRACE; }
- "}" { return RBRACE; }
- "[" { return LBRACKET; }
- "]" { return RBRACKET; }
- ";" { return SEMICOLON; }
- "," { return COMMA; }
- "..." { return ELLIPSIS; }
- "." { return DOT; }
- "==" { return EQEQ; }
- "!=" { return NE; }
- "||" { return OROR; }
- "++" { return PLUSPLUS; }
- "--" { return MINUSMINUS; }
- "<" { return LT; }
- "<=" { return LE; }
- "<<" { return LTLT; }
- ">" { return GT; }
- "&" { return AND; }
- "&&" { return ANDAND; }
- "+=" { return PLUSEQ; }
- "-=" { return MINUSEQ; }
- "*=" { return ASTERISKEQ; }
- "/=" { return DIVEQ; }
- "&=" { return ANDEQ; }
- "|=" { return OREQ; }
- "^=" { return XOREQ; }
- "%=" { return PERCEQ; }
- "<<=" { return LTLTEQ; }
- ">>=" { return GTGTEQ; }
- "assert" { return ASSERT_KEYWORD; }
- "break" { return BREAK_KEYWORD; }
- "case" { return CASE_KEYWORD; }
- "continue" { return CONTINUE_KEYWORD; }
- "default" { return DEFAULT_KEYWORD; }
- "do" { return DO_KEYWORD; }
- "else" { return ELSE_KEYWORD; }
- "exit" { return EXIT_KEYWORD; }
- "for" { return FOR_KEYWORD; }
- "goto" { return GOTO_KEYWORD; }
- "if" { return IF_KEYWORD; }
- "return" { return RETURN_KEYWORD; }
- "sleep" { return SLEEP_KEYWORD; }
- "state" { return STATE_KEYWORD; }
- "switch" { return SWITCH_KEYWORD; }
- "while" { return WHILE_KEYWORD; }
- "defined" { return DEFINED_KEYWORD; }
- "sizeof" { return SIZEOF_KEYWORD; }
- "tagof" { return TAGOF_KEYWORD; }
- "const" { return CONST_KEYWORD; }
- "forward" { return FORWARD_KEYWORD; }
- "native" { return NATIVE_KEYWORD; }
- "new" { return NEW_KEYWORD; }
- "operator" { return OPERATOR_KEYWORD; }
- "public" { return PUBLIC_KEYWORD; }
- "static" { return STATIC_KEYWORD; }
- "stock" { return STOCK_KEYWORD; }
- "decl" { return DECL_KEYWORD; }
- "enum" { return ENUM_KEYWORD; }
- "struct" { return STRUCT_KEYWORD; }
- "expr" { return EXPR; }
-
- {SPACE} { return SPACE; }
- {LINE_COMMENT} { return LINE_COMMENT; }
- {BLOCK_COMMENT} { return BLOCK_COMMENT; }
- {PREPROCESSOR_COMMENT} { return PREPROCESSOR_COMMENT; }
- {INTEGER_LITERAL} { return INTEGER_LITERAL; }
- {FLOAT_LITERAL} { return FLOAT_LITERAL; }
- {HEX_LITERAL} { return HEX_LITERAL; }
- {BINARY_LITERAL} { return BINARY_LITERAL; }
- {STRING_LITERAL} { return STRING_LITERAL; }
- {CHARACTER_LITERAL} { return CHARACTER_LITERAL; }
- {SYMBOL} { return SYMBOL; }
-
- [^] { return com.intellij.psi.TokenType.BAD_CHARACTER; }
-}
diff --git a/src/org/idea_sp/SourcePawnColorSettingsPage.java b/src/org/idea_sp/SourcePawnColorSettingsPage.java
deleted file mode 100644
index 2dda694..0000000
--- a/src/org/idea_sp/SourcePawnColorSettingsPage.java
+++ /dev/null
@@ -1,65 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.openapi.editor.colors.TextAttributesKey;
-import com.intellij.openapi.fileTypes.SyntaxHighlighter;
-import com.intellij.openapi.options.colors.AttributesDescriptor;
-import com.intellij.openapi.options.colors.ColorDescriptor;
-import com.intellij.openapi.options.colors.ColorSettingsPage;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import javax.swing.*;
-import java.util.Map;
-
-public class SourcePawnColorSettingsPage implements ColorSettingsPage {
- private static final AttributesDescriptor[] DESCRIPTORS = new AttributesDescriptor[]{
- new AttributesDescriptor("Operator", SourcePawnSyntaxHighlighter.OPERATOR),
- new AttributesDescriptor("Literal", SourcePawnSyntaxHighlighter.LITERAL),
- new AttributesDescriptor("Reserved", SourcePawnSyntaxHighlighter.RESERVED),
- new AttributesDescriptor("Comment", SourcePawnSyntaxHighlighter.COMMENT),
- };
-
- @Nullable
- @Override
- public Icon getIcon() {
- return SourcePawnIcons.FILE;
- }
-
- @NotNull
- @Override
- public SyntaxHighlighter getHighlighter() {
- return new SourcePawnSyntaxHighlighter();
- }
-
- @NotNull
- @Override
- public String getDemoText() {
- return "// Here's a comment!\n" +
- "static a = 4;\n" +
- "public static const char s[] = \"test\";";
- }
-
- @Nullable
- @Override
- public Map getAdditionalHighlightingTagToDescriptorMap() {
- return null;
- }
-
- @NotNull
- @Override
- public AttributesDescriptor[] getAttributeDescriptors() {
- return DESCRIPTORS;
- }
-
- @NotNull
- @Override
- public ColorDescriptor[] getColorDescriptors() {
- return ColorDescriptor.EMPTY_ARRAY;
- }
-
- @NotNull
- @Override
- public String getDisplayName() {
- return "SourcePawn";
- }
-}
diff --git a/src/org/idea_sp/SourcePawnFileType.java b/src/org/idea_sp/SourcePawnFileType.java
deleted file mode 100644
index e9bcc57..0000000
--- a/src/org/idea_sp/SourcePawnFileType.java
+++ /dev/null
@@ -1,39 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.openapi.fileTypes.LanguageFileType;
-import org.jetbrains.annotations.NotNull;
-import org.jetbrains.annotations.Nullable;
-
-import javax.swing.*;
-
-public class SourcePawnFileType extends LanguageFileType {
- public static final SourcePawnFileType INSTANCE = new SourcePawnFileType();
-
- private SourcePawnFileType() {
- super(SourcePawnLanguage.INSTANCE);
- }
-
- @NotNull
- @Override
- public String getName() {
- return "SourcePawn file";
- }
-
- @NotNull
- @Override
- public String getDescription() {
- return "SourcePawn language file";
- }
-
- @NotNull
- @Override
- public String getDefaultExtension() {
- return "sp";
- }
-
- @Nullable
- @Override
- public Icon getIcon() {
- return SourcePawnIcons.FILE;
- }
-}
diff --git a/src/org/idea_sp/SourcePawnFileTypeFactory.java b/src/org/idea_sp/SourcePawnFileTypeFactory.java
deleted file mode 100644
index f3fa17a..0000000
--- a/src/org/idea_sp/SourcePawnFileTypeFactory.java
+++ /dev/null
@@ -1,13 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.openapi.fileTypes.FileTypeConsumer;
-import com.intellij.openapi.fileTypes.FileTypeFactory;
-import org.jetbrains.annotations.NotNull;
-
-public class SourcePawnFileTypeFactory extends FileTypeFactory {
- @Override
- public void createFileTypes(@NotNull FileTypeConsumer fileTypeConsumer) {
- fileTypeConsumer.consume(SourcePawnFileType.INSTANCE, "sp");
- fileTypeConsumer.consume(SourcePawnFileType.INSTANCE, "inc");
- }
-}
diff --git a/src/org/idea_sp/SourcePawnIcons.java b/src/org/idea_sp/SourcePawnIcons.java
deleted file mode 100644
index dc06cda..0000000
--- a/src/org/idea_sp/SourcePawnIcons.java
+++ /dev/null
@@ -1,9 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.openapi.util.IconLoader;
-
-import javax.swing.*;
-
-public class SourcePawnIcons {
- public static final Icon FILE = IconLoader.getIcon("/org/idea_sp/icons/hl2.png");
-}
diff --git a/src/org/idea_sp/SourcePawnLanguage.java b/src/org/idea_sp/SourcePawnLanguage.java
deleted file mode 100644
index 19c5322..0000000
--- a/src/org/idea_sp/SourcePawnLanguage.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.lang.Language;
-
-public class SourcePawnLanguage extends Language {
- public static final SourcePawnLanguage INSTANCE = new SourcePawnLanguage();
-
- protected SourcePawnLanguage() {
- super("SourcePawn");
- }
-}
diff --git a/src/org/idea_sp/SourcePawnLexer.java~ b/src/org/idea_sp/SourcePawnLexer.java~
deleted file mode 100644
index 1745e3b..0000000
--- a/src/org/idea_sp/SourcePawnLexer.java~
+++ /dev/null
@@ -1,864 +0,0 @@
-/* The following code was generated by JFlex 1.4.3 on 3/7/15 10:14 AM */
-
-
-package org.idea_sp;
-
-import com.intellij.lexer.FlexLexer;
-import com.intellij.psi.tree.IElementType;
-import org.idea_sp.psi.SourcePawnTypes;
-import com.intellij.psi.TokenType;
-
-
-/**
- * This class is a scanner generated by
- * JFlex 1.4.3
- * on 3/7/15 10:14 AM from the specification file
- * /Users/they4kman/programming/idea-sp/src/org/idea_sp/SourcePawn.flex
- */
-class SourcePawnLexer implements FlexLexer {
- /** initial size of the lookahead buffer */
- private static final int ZZ_BUFFERSIZE = 16384;
-
- /** lexical states */
- public static final int YYINITIAL = 0;
-
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
- * at the beginning of a line
- * l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0
- };
-
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED =
- "\11\3\1\1\1\6\1\0\1\1\1\6\16\3\4\0\1\1\1\42"+
- "\1\21\1\7\1\2\1\52\1\66\1\17\1\54\1\55\1\5\1\46"+
- "\1\63\1\47\1\16\1\4\1\13\11\10\1\45\1\62\1\64\1\41"+
- "\1\65\1\44\1\53\1\12\1\15\3\12\1\22\14\2\1\27\4\2"+
- "\1\14\2\2\1\60\1\20\1\61\1\51\1\11\1\0\1\25\1\34"+
- "\2\12\1\36\1\37\1\33\1\2\1\31\2\2\1\23\1\2\1\32"+
- "\1\24\2\2\1\30\1\40\1\26\1\35\2\2\1\14\2\2\1\56"+
- "\1\50\1\57\1\43\41\3\2\0\4\2\4\0\1\2\2\0\1\3"+
- "\7\0\1\2\4\0\1\2\5\0\27\2\1\0\37\2\1\0\u013f\2"+
- "\31\0\162\2\4\0\14\2\16\0\5\2\11\0\1\2\21\0\130\3"+
- "\5\0\23\3\12\0\1\2\13\0\1\2\1\0\3\2\1\0\1\2"+
- "\1\0\24\2\1\0\54\2\1\0\46\2\1\0\5\2\4\0\202\2"+
- "\1\0\4\3\3\0\105\2\1\0\46\2\2\0\2\2\6\0\20\2"+
- "\41\0\46\2\2\0\1\2\7\0\47\2\11\0\21\3\1\0\27\3"+
- "\1\0\3\3\1\0\1\3\1\0\2\3\1\0\1\3\13\0\33\2"+
- "\5\0\3\2\15\0\4\3\14\0\6\3\13\0\32\2\5\0\13\2"+
- "\16\3\7\0\12\3\4\0\2\2\1\3\143\2\1\0\1\2\10\3"+
- "\1\0\6\3\2\2\2\3\1\0\4\3\2\2\12\3\3\2\2\0"+
- "\1\2\17\0\1\3\1\2\1\3\36\2\33\3\2\0\3\2\60\0"+
- "\46\2\13\3\1\2\u014f\0\3\3\66\2\2\0\1\3\1\2\20\3"+
- "\2\0\1\2\4\3\3\0\12\2\2\3\2\0\12\3\21\0\3\3"+
- "\1\0\10\2\2\0\2\2\2\0\26\2\1\0\7\2\1\0\1\2"+
- "\3\0\4\2\2\0\1\3\1\2\7\3\2\0\2\3\2\0\3\3"+
- "\11\0\1\3\4\0\2\2\1\0\3\2\2\3\2\0\12\3\4\2"+
- "\15\0\3\3\1\0\6\2\4\0\2\2\2\0\26\2\1\0\7\2"+
- "\1\0\2\2\1\0\2\2\1\0\2\2\2\0\1\3\1\0\5\3"+
- "\4\0\2\3\2\0\3\3\13\0\4\2\1\0\1\2\7\0\14\3"+
- "\3\2\14\0\3\3\1\0\11\2\1\0\3\2\1\0\26\2\1\0"+
- "\7\2\1\0\2\2\1\0\5\2\2\0\1\3\1\2\10\3\1\0"+
- "\3\3\1\0\3\3\2\0\1\2\17\0\2\2\2\3\2\0\12\3"+
- "\1\0\1\2\17\0\3\3\1\0\10\2\2\0\2\2\2\0\26\2"+
- "\1\0\7\2\1\0\2\2\1\0\5\2\2\0\1\3\1\2\6\3"+
- "\3\0\2\3\2\0\3\3\10\0\2\3\4\0\2\2\1\0\3\2"+
- "\4\0\12\3\1\0\1\2\20\0\1\3\1\2\1\0\6\2\3\0"+
- "\3\2\1\0\4\2\3\0\2\2\1\0\1\2\1\0\2\2\3\0"+
- "\2\2\3\0\3\2\3\0\10\2\1\0\3\2\4\0\5\3\3\0"+
- "\3\3\1\0\4\3\11\0\1\3\17\0\11\3\11\0\1\2\7\0"+
- "\3\3\1\0\10\2\1\0\3\2\1\0\27\2\1\0\12\2\1\0"+
- "\5\2\4\0\7\3\1\0\3\3\1\0\4\3\7\0\2\3\11\0"+
- "\2\2\4\0\12\3\22\0\2\3\1\0\10\2\1\0\3\2\1\0"+
- "\27\2\1\0\12\2\1\0\5\2\2\0\1\3\1\2\7\3\1\0"+
- "\3\3\1\0\4\3\7\0\2\3\7\0\1\2\1\0\2\2\4\0"+
- "\12\3\22\0\2\3\1\0\10\2\1\0\3\2\1\0\27\2\1\0"+
- "\20\2\4\0\6\3\2\0\3\3\1\0\4\3\11\0\1\3\10\0"+
- "\2\2\4\0\12\3\22\0\2\3\1\0\22\2\3\0\30\2\1\0"+
- "\11\2\1\0\1\2\2\0\7\2\3\0\1\3\4\0\6\3\1\0"+
- "\1\3\1\0\10\3\22\0\2\3\15\0\60\2\1\3\2\2\7\3"+
- "\4\0\10\2\10\3\1\0\12\3\47\0\2\2\1\0\1\2\2\0"+
- "\2\2\1\0\1\2\2\0\1\2\6\0\4\2\1\0\7\2\1\0"+
- "\3\2\1\0\1\2\1\0\1\2\2\0\2\2\1\0\4\2\1\3"+
- "\2\2\6\3\1\0\2\3\1\2\2\0\5\2\1\0\1\2\1\0"+
- "\6\3\2\0\12\3\2\0\2\2\42\0\1\2\27\0\2\3\6\0"+
- "\12\3\13\0\1\3\1\0\1\3\1\0\1\3\4\0\2\3\10\2"+
- "\1\0\42\2\6\0\24\3\1\0\2\3\4\2\4\0\10\3\1\0"+
- "\44\3\11\0\1\3\71\0\42\2\1\0\5\2\1\0\2\2\1\0"+
- "\7\3\3\0\4\3\6\0\12\3\6\0\6\2\4\3\106\0\46\2"+
- "\12\0\51\2\7\0\132\2\5\0\104\2\5\0\122\2\6\0\7\2"+
- "\1\0\77\2\1\0\1\2\1\0\4\2\2\0\7\2\1\0\1\2"+
- "\1\0\4\2\2\0\47\2\1\0\1\2\1\0\4\2\2\0\37\2"+
- "\1\0\1\2\1\0\4\2\2\0\7\2\1\0\1\2\1\0\4\2"+
- "\2\0\7\2\1\0\7\2\1\0\27\2\1\0\37\2\1\0\1\2"+
- "\1\0\4\2\2\0\7\2\1\0\47\2\1\0\23\2\16\0\11\3"+
- "\56\0\125\2\14\0\u026c\2\2\0\10\2\12\0\32\2\5\0\113\2"+
- "\3\0\3\2\17\0\15\2\1\0\4\2\3\3\13\0\22\2\3\3"+
- "\13\0\22\2\2\3\14\0\15\2\1\0\3\2\1\0\2\3\14\0"+
- "\64\2\40\3\3\0\1\2\3\0\2\2\1\3\2\0\12\3\41\0"+
- "\3\3\2\0\12\3\6\0\130\2\10\0\51\2\1\3\126\0\35\2"+
- "\3\0\14\3\4\0\14\3\12\0\12\3\36\2\2\0\5\2\u038b\0"+
- "\154\2\224\0\234\2\4\0\132\2\6\0\26\2\2\0\6\2\2\0"+
- "\46\2\2\0\6\2\2\0\10\2\1\0\1\2\1\0\1\2\1\0"+
- "\1\2\1\0\37\2\2\0\65\2\1\0\7\2\1\0\1\2\3\0"+
- "\3\2\1\0\7\2\3\0\4\2\2\0\6\2\4\0\15\2\5\0"+
- "\3\2\1\0\7\2\17\0\4\3\32\0\5\3\20\0\2\2\23\0"+
- "\1\2\13\0\4\3\6\0\6\3\1\0\1\2\15\0\1\2\40\0"+
- "\22\2\36\0\15\3\4\0\1\3\3\0\6\3\27\0\1\2\4\0"+
- "\1\2\2\0\12\2\1\0\1\2\3\0\5\2\6\0\1\2\1\0"+
- "\1\2\1\0\1\2\1\0\4\2\1\0\3\2\1\0\7\2\3\0"+
- "\3\2\5\0\5\2\26\0\44\2\u0e81\0\3\2\31\0\11\2\6\3"+
- "\1\0\5\2\2\0\5\2\4\0\126\2\2\0\2\3\2\0\3\2"+
- "\1\0\137\2\5\0\50\2\4\0\136\2\21\0\30\2\70\0\20\2"+
- "\u0200\0\u19b6\2\112\0\u51a6\2\132\0\u048d\2\u0773\0\u2ba4\2\u215c\0\u012e\2"+
- "\2\0\73\2\225\0\7\2\14\0\5\2\5\0\1\2\1\3\12\2"+
- "\1\0\15\2\1\0\5\2\1\0\1\2\1\0\2\2\1\0\2\2"+
- "\1\0\154\2\41\0\u016b\2\22\0\100\2\2\0\66\2\50\0\15\2"+
- "\3\0\20\3\20\0\4\3\17\0\2\2\30\0\3\2\31\0\1\2"+
- "\6\0\5\2\1\0\207\2\2\0\1\3\4\0\1\2\13\0\12\3"+
- "\7\0\32\2\4\0\1\2\1\0\32\2\12\0\132\2\3\0\6\2"+
- "\2\0\6\2\2\0\6\2\2\0\3\2\3\0\2\2\3\0\2\2"+
- "\22\0\3\3\4\0";
-
- /**
- * Translates characters to character classes
- */
- private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
-
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int [] ZZ_ACTION = zzUnpackAction();
-
- private static final String ZZ_ACTION_PACKED_0 =
- "\1\0\1\1\1\2\1\3\1\4\1\5\1\6\1\7"+
- "\1\6\1\10\1\11\1\12\6\2\1\13\1\14\1\15"+
- "\1\16\1\17\1\20\1\21\1\22\1\23\1\24\1\25"+
- "\1\26\1\27\1\30\1\31\1\32\1\33\1\34\1\35"+
- "\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45"+
- "\2\6\1\0\2\11\2\12\6\2\1\46\1\47\1\50"+
- "\1\51\1\52\1\53\1\54\1\55\1\56\1\57\1\60"+
- "\2\0\1\61\1\62\1\42\1\63\6\2\1\64\1\65"+
- "\1\0\1\2\1\66\1\2\1\67\1\70\1\2\1\42"+
- "\1\71\1\2\1\72\1\73";
-
- private static int [] zzUnpackAction() {
- int [] result = new int[95];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackAction(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
-
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
-
- private static final String ZZ_ROWMAP_PACKED_0 =
- "\0\0\0\67\0\156\0\245\0\334\0\u0113\0\u014a\0\156"+
- "\0\u0181\0\u01b8\0\u01ef\0\u0226\0\u025d\0\u0294\0\u02cb\0\u0302"+
- "\0\u0339\0\u0370\0\u03a7\0\u03de\0\u0415\0\u0415\0\u0415\0\u044c"+
- "\0\u0483\0\u04ba\0\u04f1\0\u0528\0\u0415\0\u0415\0\u0415\0\u0415"+
- "\0\u0415\0\u0415\0\u0415\0\u0415\0\u0415\0\u055f\0\u0596\0\u05cd"+
- "\0\u0604\0\u063b\0\u0415\0\u0415\0\u0672\0\u06a9\0\u06e0\0\u0717"+
- "\0\u0415\0\u074e\0\u0785\0\u0415\0\u07bc\0\u07f3\0\u082a\0\u0861"+
- "\0\u0898\0\u08cf\0\u0415\0\u0415\0\u0415\0\u0415\0\u0415\0\u0415"+
- "\0\u0415\0\u0415\0\u0415\0\u0415\0\u0415\0\u0906\0\u093d\0\u0415"+
- "\0\u0415\0\u0974\0\u0415\0\u09ab\0\u09e2\0\u0a19\0\u0a50\0\u0a87"+
- "\0\u0abe\0\u0415\0\u0415\0\u0af5\0\u0b2c\0\156\0\u0b63\0\156"+
- "\0\156\0\u0b9a\0\u0415\0\156\0\u0bd1\0\156\0\156";
-
- private static int [] zzUnpackRowMap() {
- int [] result = new int[95];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackRowMap(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
- }
-
- /**
- * The transition table of the DFA
- */
- private static final int [] ZZ_TRANS = zzUnpackTrans();
-
- private static final String ZZ_TRANS_PACKED_0 =
- "\1\0\1\2\1\3\1\0\1\4\1\5\1\2\1\6"+
- "\1\7\1\10\1\3\1\11\2\3\1\12\1\13\1\0"+
- "\1\14\1\15\3\3\1\16\1\17\2\3\1\20\1\3"+
- "\1\21\2\3\1\22\1\3\1\23\1\24\1\25\1\26"+
- "\1\27\1\30\1\31\1\32\1\33\1\34\1\35\1\36"+
- "\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46"+
- "\1\47\1\50\1\0\1\2\4\0\1\2\62\0\2\3"+
- "\4\0\6\3\4\0\17\3\32\0\1\51\1\52\33\0"+
- "\1\53\66\0\1\54\25\0\6\6\1\0\60\6\10\0"+
- "\2\7\1\0\1\7\2\0\1\55\60\0\2\7\1\0"+
- "\1\7\1\56\1\57\1\55\15\0\1\57\42\0\1\55"+
- "\2\0\1\55\2\0\1\60\50\0\6\13\1\0\10\13"+
- "\1\61\1\62\46\13\6\14\1\0\11\14\1\63\1\64"+
- "\45\14\2\0\2\3\4\0\6\3\4\0\1\3\1\65"+
- "\15\3\30\0\2\3\4\0\6\3\4\0\6\3\1\66"+
- "\10\3\30\0\2\3\4\0\6\3\4\0\4\3\1\67"+
- "\12\3\30\0\2\3\4\0\6\3\4\0\13\3\1\70"+
- "\3\3\30\0\2\3\4\0\6\3\4\0\2\3\1\71"+
- "\14\3\30\0\2\3\4\0\6\3\4\0\3\3\1\72"+
- "\13\3\67\0\1\73\66\0\1\74\155\0\1\75\4\0"+
- "\1\76\61\0\1\77\5\0\1\100\60\0\1\101\6\0"+
- "\1\102\57\0\1\103\66\0\1\104\66\0\1\105\22\0"+
- "\1\106\67\0\1\107\42\0\1\110\24\0\1\111\6\51"+
- "\1\0\60\51\5\112\1\0\61\112\10\0\2\55\1\0"+
- "\1\55\63\0\4\56\1\0\1\56\4\0\1\56\2\0"+
- "\1\56\6\0\1\56\1\0\2\56\37\0\2\57\1\0"+
- "\1\57\71\0\1\113\50\0\6\13\1\0\60\13\6\14"+
- "\1\0\60\14\2\0\2\3\4\0\6\3\4\0\2\3"+
- "\1\114\14\3\30\0\2\3\4\0\6\3\4\0\13\3"+
- "\1\115\3\3\30\0\2\3\4\0\6\3\4\0\6\3"+
- "\1\116\10\3\30\0\2\3\4\0\6\3\4\0\1\3"+
- "\1\117\15\3\30\0\2\3\4\0\6\3\4\0\2\3"+
- "\1\120\14\3\30\0\2\3\4\0\6\3\4\0\1\3"+
- "\1\121\15\3\67\0\1\122\66\0\1\123\25\0\5\112"+
- "\1\124\61\112\2\0\2\3\4\0\6\3\4\0\3\3"+
- "\1\125\13\3\30\0\2\3\4\0\6\3\4\0\14\3"+
- "\1\126\2\3\30\0\2\3\4\0\6\3\4\0\7\3"+
- "\1\127\7\3\30\0\2\3\4\0\6\3\4\0\1\3"+
- "\1\130\15\3\30\0\2\3\4\0\6\3\4\0\1\3"+
- "\1\131\15\3\30\0\2\3\4\0\6\3\4\0\16\3"+
- "\1\132\26\0\4\112\1\133\1\124\61\112\2\0\2\3"+
- "\4\0\6\3\4\0\4\3\1\134\12\3\30\0\2\3"+
- "\4\0\6\3\4\0\10\3\1\135\6\3\30\0\2\3"+
- "\4\0\6\3\4\0\14\3\1\136\2\3\30\0\2\3"+
- "\4\0\6\3\4\0\11\3\1\137\5\3\26\0";
-
- private static int [] zzUnpackTrans() {
- int [] result = new int[3080];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackTrans(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
-
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
- private static final char[] EMPTY_BUFFER = new char[0];
- private static final int YYEOF = -1;
- private static java.io.Reader zzReader = null; // Fake
-
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
-
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
-
- private static final String ZZ_ATTRIBUTE_PACKED_0 =
- "\1\0\23\1\3\11\5\1\11\11\5\1\2\11\3\1"+
- "\1\0\1\11\2\1\1\11\6\1\13\11\2\0\2\11"+
- "\1\1\1\11\6\1\2\11\1\0\6\1\1\11\4\1";
-
- private static int [] zzUnpackAttribute() {
- int [] result = new int[95];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackAttribute(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
- /** the current state of the DFA */
- private int zzState;
-
- /** the current lexical state */
- private int zzLexicalState = YYINITIAL;
-
- /** this buffer contains the current text to be matched and is
- the source of the yytext() string */
- private CharSequence zzBuffer = "";
-
- /** this buffer may contains the current text array to be matched when it is cheap to acquire it */
- private char[] zzBufferArray;
-
- /** the textposition at the last accepting state */
- private int zzMarkedPos;
-
- /** the textposition at the last state to be included in yytext */
- private int zzPushbackPos;
-
- /** the current text position in the buffer */
- private int zzCurrentPos;
-
- /** startRead marks the beginning of the yytext() string in the buffer */
- private int zzStartRead;
-
- /** endRead marks the last character in the buffer, that has been read
- from input */
- private int zzEndRead;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /** zzAtEOF == true <=> the scanner is at the EOF */
- private boolean zzAtEOF;
-
- /** denotes if the user-EOF-code has already been executed */
- private boolean zzEOFDone;
-
- /* user code: */
-
-
- SourcePawnLexer(java.io.Reader in) {
- this.zzReader = in;
- }
-
- /**
- * Creates a new scanner.
- * There is also java.io.Reader version of this constructor.
- *
- * @param in the java.io.Inputstream to read input from.
- */
- SourcePawnLexer(java.io.InputStream in) {
- this(new java.io.InputStreamReader(in));
- }
-
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char [] zzUnpackCMap(String packed) {
- char [] map = new char[0x10000];
- int i = 0; /* index in packed string */
- int j = 0; /* index in unpacked array */
- while (i < 1766) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do map[j++] = value; while (--count > 0);
- }
- return map;
- }
-
- public final int getTokenStart(){
- return zzStartRead;
- }
-
- public final int getTokenEnd(){
- return getTokenStart() + yylength();
- }
-
- public void reset(CharSequence buffer, int start, int end,int initialState){
- zzBuffer = buffer;
- zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer);
- zzCurrentPos = zzMarkedPos = zzStartRead = start;
- zzPushbackPos = 0;
- zzAtEOF = false;
- zzAtBOL = true;
- zzEndRead = end;
- yybegin(initialState);
- }
-
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
- return true;
- }
-
-
- /**
- * Returns the current lexical state.
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
-
- /**
- * Returns the text matched by the current regular expression.
- */
- public final CharSequence yytext() {
- return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
- }
-
-
- /**
- * Returns the character at position pos from the
- * matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch.
- * A value from 0 to yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos);
- }
-
-
- /**
- * Returns the length of the matched text region.
- */
- public final int yylength() {
- return zzMarkedPos-zzStartRead;
- }
-
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of
- * yypushback(int) and a match-all fallback rule) this method
- * will only be called with things that "Can't Possibly Happen".
- * If this method is called, something is seriously wrong
- * (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done
- * in error fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again.
- * This number must not be greater than yylength()!
- */
- public void yypushback(int number) {
- if ( number > yylength() )
- zzScanError(ZZ_PUSHBACK_2BIG);
-
- zzMarkedPos -= number;
- }
-
-
- /**
- * Contains user EOF-code, which will be executed exactly once,
- * when the end of file is reached
- */
- private void zzDoEOF() {
- if (!zzEOFDone) {
- zzEOFDone = true;
-
- }
- }
-
-
- /**
- * Resumes scanning until the next regular expression is matched,
- * the end of input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- */
- public IElementType advance() throws java.io.IOException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- CharSequence zzBufferL = zzBuffer;
- char[] zzBufferArrayL = zzBufferArray;
- char [] zzCMapL = ZZ_CMAP;
-
- int [] zzTransL = ZZ_TRANS;
- int [] zzRowMapL = ZZ_ROWMAP;
- int [] zzAttrL = ZZ_ATTRIBUTE;
-
- while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- zzAction = -1;
-
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
-
- zzForAction: {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL)
- zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
- else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
- }
- }
- int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
- if (zzNext == -1) break zzForAction;
- zzState = zzNext;
-
- int zzAttributes = zzAttrL[zzState];
- if ( (zzAttributes & 1) == 1 ) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ( (zzAttributes & 8) == 8 ) break zzForAction;
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 1:
- { return SourcePawnTypes.WHITE_SPACE;
- }
- case 60: break;
- case 21:
- { return SourcePawnTypes.AT;
- }
- case 61: break;
- case 18:
- { return SourcePawnTypes.OR;
- }
- case 62: break;
- case 42:
- { return SourcePawnTypes.MINUSEQ;
- }
- case 63: break;
- case 55:
- { return SourcePawnTypes.NULL_KEYWORD;
- }
- case 64: break;
- case 19:
- { return SourcePawnTypes.XOR;
- }
- case 65: break;
- case 52:
- { return SourcePawnTypes.LTLTEQ;
- }
- case 66: break;
- case 54:
- { return SourcePawnTypes.TRUE_KEYWORD;
- }
- case 67: break;
- case 40:
- { return SourcePawnTypes.PLUSEQ;
- }
- case 68: break;
- case 38:
- { return SourcePawnTypes.EQEQ;
- }
- case 69: break;
- case 29:
- { return SourcePawnTypes.COMMA;
- }
- case 70: break;
- case 58:
- { return SourcePawnTypes.FALSE_KEYWORD;
- }
- case 71: break;
- case 36:
- { return SourcePawnTypes.ASTERISKEQ;
- }
- case 72: break;
- case 22:
- { return SourcePawnTypes.LPAREN;
- }
- case 73: break;
- case 8:
- { return SourcePawnTypes.DOT;
- }
- case 74: break;
- case 23:
- { return SourcePawnTypes.RPAREN;
- }
- case 75: break;
- case 51:
- { return SourcePawnTypes.ELLIPSIS;
- }
- case 76: break;
- case 20:
- { return SourcePawnTypes.PERC;
- }
- case 77: break;
- case 3:
- { return SourcePawnTypes.DIV;
- }
- case 78: break;
- case 31:
- { return SourcePawnTypes.GT;
- }
- case 79: break;
- case 10:
- { return SourcePawnTypes.STRING_LITERAL;
- }
- case 80: break;
- case 15:
- { return SourcePawnTypes.COLON;
- }
- case 81: break;
- case 59:
- { return SourcePawnTypes.STRING_TYPE;
- }
- case 82: break;
- case 45:
- { return SourcePawnTypes.OROR;
- }
- case 83: break;
- case 9:
- { return SourcePawnTypes.CHARACTER_LITERAL;
- }
- case 84: break;
- case 2:
- { return SourcePawnTypes.IDENTIFIER;
- }
- case 85: break;
- case 27:
- { return SourcePawnTypes.RBRACKET;
- }
- case 86: break;
- case 32:
- { return SourcePawnTypes.AND;
- }
- case 87: break;
- case 39:
- { return SourcePawnTypes.NE;
- }
- case 88: break;
- case 6:
- { return SourcePawnTypes.INTEGER_LITERAL;
- }
- case 89: break;
- case 49:
- { return SourcePawnTypes.ANDEQ;
- }
- case 90: break;
- case 33:
- { return SourcePawnTypes.END_OF_LINE_COMMENT;
- }
- case 91: break;
- case 53:
- { return SourcePawnTypes.GTGTEQ;
- }
- case 92: break;
- case 11:
- { return SourcePawnTypes.EQ;
- }
- case 93: break;
- case 24:
- { return SourcePawnTypes.LBRACE;
- }
- case 94: break;
- case 7:
- { return SourcePawnTypes.CELL_TAG;
- }
- case 95: break;
- case 5:
- { return SourcePawnTypes.PREPROCESSOR_COMMENT;
- }
- case 96: break;
- case 25:
- { return SourcePawnTypes.RBRACE;
- }
- case 97: break;
- case 16:
- { return SourcePawnTypes.PLUS;
- }
- case 98: break;
- case 50:
- { return SourcePawnTypes.ANDAND;
- }
- case 99: break;
- case 48:
- { return SourcePawnTypes.LE;
- }
- case 100: break;
- case 14:
- { return SourcePawnTypes.QUEST;
- }
- case 101: break;
- case 17:
- { return SourcePawnTypes.MINUS;
- }
- case 102: break;
- case 43:
- { return SourcePawnTypes.MINUSMINUS;
- }
- case 103: break;
- case 30:
- { return SourcePawnTypes.LT;
- }
- case 104: break;
- case 35:
- { return SourcePawnTypes.DIVEQ;
- }
- case 105: break;
- case 47:
- { return SourcePawnTypes.PERCEQ;
- }
- case 106: break;
- case 26:
- { return SourcePawnTypes.LBRACKET;
- }
- case 107: break;
- case 46:
- { return SourcePawnTypes.XOREQ;
- }
- case 108: break;
- case 44:
- { return SourcePawnTypes.OREQ;
- }
- case 109: break;
- case 37:
- { return SourcePawnTypes.FLOAT_LITERAL;
- }
- case 110: break;
- case 12:
- { return SourcePawnTypes.EXCL;
- }
- case 111: break;
- case 41:
- { return SourcePawnTypes.PLUSPLUS;
- }
- case 112: break;
- case 4:
- { return SourcePawnTypes.ASTERISK;
- }
- case 113: break;
- case 28:
- { return SourcePawnTypes.SEMICOLON;
- }
- case 114: break;
- case 57:
- { return SourcePawnTypes.FLOAT_TAG;
- }
- case 115: break;
- case 34:
- { return SourcePawnTypes.C_STYLE_COMMENT;
- }
- case 116: break;
- case 13:
- { return SourcePawnTypes.TILDE;
- }
- case 117: break;
- case 56:
- { return SourcePawnTypes.BOOL_TAG;
- }
- case 118: break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- zzDoEOF();
- return null;
- }
- else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
- }
- }
-
-
-}
diff --git a/src/org/idea_sp/SourcePawnLexerAdapter.java b/src/org/idea_sp/SourcePawnLexerAdapter.java
deleted file mode 100644
index c98601a..0000000
--- a/src/org/idea_sp/SourcePawnLexerAdapter.java
+++ /dev/null
@@ -1,11 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.lexer.FlexAdapter;
-
-import java.io.Reader;
-
-public class SourcePawnLexerAdapter extends FlexAdapter {
- public SourcePawnLexerAdapter() {
- super(new _SourcePawnLexer((Reader) null));
- }
-}
diff --git a/src/org/idea_sp/SourcePawnParserDefinition.java b/src/org/idea_sp/SourcePawnParserDefinition.java
deleted file mode 100644
index 0ee2ca5..0000000
--- a/src/org/idea_sp/SourcePawnParserDefinition.java
+++ /dev/null
@@ -1,74 +0,0 @@
-package org.idea_sp;
-
-
-import com.intellij.lang.ASTNode;
-import com.intellij.lang.Language;
-import com.intellij.lang.ParserDefinition;
-import com.intellij.lang.PsiParser;
-import com.intellij.lexer.FlexAdapter;
-import com.intellij.lexer.Lexer;
-import com.intellij.openapi.project.Project;
-import com.intellij.psi.FileViewProvider;
-import com.intellij.psi.PsiElement;
-import com.intellij.psi.PsiFile;
-import com.intellij.psi.TokenType;
-import com.intellij.psi.tree.IFileElementType;
-import com.intellij.psi.tree.TokenSet;
-import org.idea_sp.parser.SourcePawnParser;
-import org.idea_sp.psi.SourcePawnFile;
-import org.idea_sp.psi.SourcePawnTypes;
-import org.jetbrains.annotations.NotNull;
-
-import java.io.Reader;
-
-public class SourcePawnParserDefinition implements ParserDefinition {
- public static final TokenSet WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE);
- public static final TokenSet COMMENTS = TokenSet.create(SourcePawnTypes.LINE_COMMENT, SourcePawnTypes.BLOCK_COMMENT, SourcePawnTypes.PREPROCESSOR_COMMENT);
- public static final TokenSet STRING_LITERALS = TokenSet.create(SourcePawnTypes.STRING_LITERAL, SourcePawnTypes.CHARACTER_LITERAL);
-
- public static final IFileElementType FILE = new IFileElementType(Language.findInstance(SourcePawnLanguage.class));
-
- @NotNull
- @Override
- public Lexer createLexer(Project project) {
- return new FlexAdapter(new _SourcePawnLexer((Reader) null));
- }
-
- @NotNull
- public TokenSet getWhitespaceTokens() {
- return WHITE_SPACES;
- }
-
- @NotNull
- public TokenSet getCommentTokens() {
- return COMMENTS;
- }
-
- @NotNull
- public TokenSet getStringLiteralElements() {
- return STRING_LITERALS;
- }
-
- @NotNull
- public PsiParser createParser(final Project project) {
- return new SourcePawnParser();
- }
-
- @Override
- public IFileElementType getFileNodeType() {
- return FILE;
- }
-
- public PsiFile createFile(FileViewProvider viewProvider) {
- return new SourcePawnFile(viewProvider);
- }
-
- public SpaceRequirements spaceExistanceTypeBetweenTokens(ASTNode left, ASTNode right) {
- return SpaceRequirements.MAY;
- }
-
- @NotNull
- public PsiElement createElement(ASTNode node) {
- return SourcePawnTypes.Factory.createElement(node);
- }
-}
diff --git a/src/org/idea_sp/SourcePawnSyntaxHighlighter.java b/src/org/idea_sp/SourcePawnSyntaxHighlighter.java
deleted file mode 100644
index bc43526..0000000
--- a/src/org/idea_sp/SourcePawnSyntaxHighlighter.java
+++ /dev/null
@@ -1,50 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.lexer.FlexAdapter;
-import com.intellij.lexer.Lexer;
-import com.intellij.openapi.editor.DefaultLanguageHighlighterColors;
-import com.intellij.openapi.editor.colors.TextAttributesKey;
-import com.intellij.openapi.fileTypes.SyntaxHighlighterBase;
-import com.intellij.psi.tree.IElementType;
-import org.idea_sp.psi.SourcePawnTypes;
-import org.jetbrains.annotations.NotNull;
-
-import java.io.Reader;
-import java.util.HashMap;
-import java.util.Map;
-
-import static com.intellij.openapi.editor.colors.TextAttributesKey.createTextAttributesKey;
-import static org.idea_sp.SourcePawnTokenTypeSets.*;
-
-public class SourcePawnSyntaxHighlighter extends SyntaxHighlighterBase {
- public static final TextAttributesKey OPERATOR = createTextAttributesKey("SOURCE_PAWN_ASSIGN", DefaultLanguageHighlighterColors.OPERATION_SIGN);
- public static final TextAttributesKey LITERAL = createTextAttributesKey("SOURCE_PAWN_CONSTANT", DefaultLanguageHighlighterColors.CONSTANT);
- public static final TextAttributesKey RESERVED = createTextAttributesKey("SOURCE_PAWN_RESERVED", DefaultLanguageHighlighterColors.KEYWORD);
- public static final TextAttributesKey COMMENT = createTextAttributesKey("SOURCE_PAWN_COMMENT", DefaultLanguageHighlighterColors.LINE_COMMENT);
-
- private static final Map ATTRIBUTES = new HashMap();
-
- static {
- ATTRIBUTES.put(SourcePawnTypes.EQ, OPERATOR);
- ATTRIBUTES.put(SourcePawnTypes.LITERAL, LITERAL);
-
- fillMap(ATTRIBUTES, KEYWORDS, RESERVED);
- fillMap(ATTRIBUTES, COMMENTS, COMMENT);
- }
-
-
- @NotNull
- @Override
- public Lexer getHighlightingLexer() {
- return new FlexAdapter(new _SourcePawnLexer((Reader) null));
- }
-
- @NotNull
- @Override
- public TextAttributesKey[] getTokenHighlights(IElementType tokenType) {
- // I'm not sure what tokenType is supposed to be, because it doesn't
- // seem to match STORAGE_CLASS or LITERAL
-
- return pack(ATTRIBUTES.get(tokenType));
- }
-}
diff --git a/src/org/idea_sp/SourcePawnSyntaxHighlighterFactory.java b/src/org/idea_sp/SourcePawnSyntaxHighlighterFactory.java
deleted file mode 100644
index d356329..0000000
--- a/src/org/idea_sp/SourcePawnSyntaxHighlighterFactory.java
+++ /dev/null
@@ -1,16 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.openapi.fileTypes.SyntaxHighlighter;
-import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
-import com.intellij.openapi.project.Project;
-import com.intellij.openapi.vfs.VirtualFile;
-import org.jetbrains.annotations.NotNull;
-
-
-public class SourcePawnSyntaxHighlighterFactory extends SyntaxHighlighterFactory {
- @NotNull
- @Override
- public SyntaxHighlighter getSyntaxHighlighter(Project project, VirtualFile virtualFile) {
- return new SourcePawnSyntaxHighlighter();
- }
-}
diff --git a/src/org/idea_sp/SourcePawnTokenTypeSets.java b/src/org/idea_sp/SourcePawnTokenTypeSets.java
deleted file mode 100644
index e8145d9..0000000
--- a/src/org/idea_sp/SourcePawnTokenTypeSets.java
+++ /dev/null
@@ -1,47 +0,0 @@
-package org.idea_sp;
-
-import com.intellij.psi.tree.TokenSet;
-
-import static org.idea_sp.psi.SourcePawnTypes.*;
-
-public interface SourcePawnTokenTypeSets {
- TokenSet COMMENTS = TokenSet.create(
- LINE_COMMENT,
- BLOCK_COMMENT,
- PREPROCESSOR_COMMENT
- );
-
- TokenSet KEYWORDS = TokenSet.create(
- ASSERT_KEYWORD,
- BREAK_KEYWORD,
- CASE_KEYWORD,
- CONTINUE_KEYWORD,
- DEFAULT_KEYWORD,
- DO_KEYWORD,
- ELSE_KEYWORD,
- EXIT_KEYWORD,
- FOR_KEYWORD,
- GOTO_KEYWORD,
- IF_KEYWORD,
- RETURN_KEYWORD,
- SLEEP_KEYWORD,
- STATE_KEYWORD,
- SWITCH_KEYWORD,
- WHILE_KEYWORD,
- DEFINED_KEYWORD,
- SIZEOF_KEYWORD,
- STATE_KEYWORD,
- TAGOF_KEYWORD,
- CONST_KEYWORD,
- FORWARD_KEYWORD,
- NATIVE_KEYWORD,
- NEW_KEYWORD,
- OPERATOR_KEYWORD,
- PUBLIC_KEYWORD,
- STATIC_KEYWORD,
- STOCK_KEYWORD,
- DECL_KEYWORD,
- NEW_KEYWORD,
- PUBLIC_KEYWORD
- );
-}
diff --git a/src/org/idea_sp/_SourcePawnLexer.java b/src/org/idea_sp/_SourcePawnLexer.java
deleted file mode 100644
index 21872ed..0000000
--- a/src/org/idea_sp/_SourcePawnLexer.java
+++ /dev/null
@@ -1,1053 +0,0 @@
-/* The following code was generated by JFlex 1.4.3 on 3/11/15 1:20 AM */
-
-package org.idea_sp;
-import com.intellij.lexer.*;
-import com.intellij.psi.tree.IElementType;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-
-
-/**
- * This class is a scanner generated by
- * JFlex 1.4.3
- * on 3/11/15 1:20 AM from the specification file
- * /Users/they4kman/programming/idea-sp/src/org/idea_sp/SourcePawn.flex
- */
-public class _SourcePawnLexer implements FlexLexer {
- /** initial size of the lookahead buffer */
- private static final int ZZ_BUFFERSIZE = 16384;
-
- /** lexical states */
- public static final int YYINITIAL = 0;
-
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
- * at the beginning of a line
- * l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0
- };
-
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED =
- "\11\0\1\3\1\2\1\0\1\3\1\1\22\0\1\3\1\47\1\41"+
- "\1\6\1\0\1\56\1\71\1\43\1\57\1\60\1\5\1\53\1\66"+
- "\1\30\1\33\1\4\1\34\1\40\10\31\1\52\1\65\1\67\1\46"+
- "\1\70\1\51\1\44\6\36\24\45\1\63\1\42\1\64\1\55\1\32"+
- "\1\0\1\7\1\37\1\24\1\14\1\11\1\15\1\25\1\74\1\16"+
- "\1\45\1\72\1\20\1\26\1\17\1\23\1\21\1\45\1\12\1\10"+
- "\1\13\1\22\1\76\1\73\1\35\1\27\1\75\1\61\1\54\1\62"+
- "\1\50\uff81\0";
-
- /**
- * Translates characters to character classes
- */
- private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
-
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int [] ZZ_ACTION = zzUnpackAction();
-
- private static final String ZZ_ACTION_PACKED_0 =
- "\1\0\1\1\1\2\1\3\1\4\1\1\16\5\1\6"+
- "\1\7\1\1\1\10\1\7\1\5\2\1\1\11\1\12"+
- "\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22"+
- "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+
- "\1\33\1\34\1\5\1\35\1\0\1\36\1\37\12\0"+
- "\13\5\1\40\1\5\1\41\7\5\1\42\1\43\4\0"+
- "\1\5\1\0\1\44\3\0\1\45\1\46\1\47\1\50"+
- "\1\51\1\52\1\53\1\54\1\55\1\56\1\0\1\57"+
- "\1\60\1\5\11\0\1\61\4\0\17\5\1\62\1\5"+
- "\1\63\5\5\1\64\1\65\1\66\1\67\1\5\1\44"+
- "\2\70\1\71\1\72\1\5\1\73\11\0\7\5\1\74"+
- "\1\75\1\76\1\77\4\5\1\100\4\5\1\101\2\5"+
- "\1\102\1\0\2\5\10\0\1\5\1\103\2\5\1\104"+
- "\1\5\1\105\2\5\1\106\6\5\1\107\1\5\1\0"+
- "\1\64\1\110\1\111\5\0\1\112\1\113\1\114\1\115"+
- "\1\116\1\117\3\5\1\120\1\121\2\5\2\0\1\122"+
- "\1\123\1\124\2\5\1\125\1\126";
-
- private static int [] zzUnpackAction() {
- int [] result = new int[252];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackAction(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
-
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
-
- private static final String ZZ_ROWMAP_PACKED_0 =
- "\0\0\0\77\0\176\0\275\0\374\0\u013b\0\u017a\0\u01b9"+
- "\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4\0\u0333\0\u0372\0\u03b1"+
- "\0\u03f0\0\u042f\0\u046e\0\u04ad\0\u04ec\0\u052b\0\u03b1\0\u056a"+
- "\0\u05a9\0\u05e8\0\u0627\0\u0666\0\u06a5\0\u06e4\0\77\0\77"+
- "\0\77\0\u0723\0\u0762\0\u07a1\0\u07e0\0\77\0\77\0\77"+
- "\0\77\0\77\0\77\0\77\0\77\0\u081f\0\u085e\0\u089d"+
- "\0\u08dc\0\u091b\0\u095a\0\77\0\77\0\u0999\0\u09d8\0\u0a17"+
- "\0\u0a56\0\u0a95\0\u0ad4\0\u0b13\0\u0b52\0\u0b91\0\u0bd0\0\u0c0f"+
- "\0\u0c4e\0\u0c8d\0\u0ccc\0\u0d0b\0\u0d4a\0\u0d89\0\u0dc8\0\u0e07"+
- "\0\u0e46\0\u0e85\0\u03b1\0\u0ec4\0\u03b1\0\u0f03\0\u0f42\0\u0f81"+
- "\0\u0fc0\0\u0fff\0\u103e\0\u107d\0\77\0\77\0\u10bc\0\u10fb"+
- "\0\u113a\0\u1179\0\u11b8\0\u0627\0\77\0\u11f7\0\u1236\0\u1275"+
- "\0\77\0\77\0\77\0\77\0\77\0\77\0\77\0\77"+
- "\0\77\0\u12b4\0\u12f3\0\77\0\77\0\u1332\0\u1371\0\u13b0"+
- "\0\u13ef\0\u142e\0\u146d\0\u14ac\0\u14eb\0\u152a\0\u1569\0\u15a8"+
- "\0\u15e7\0\u1626\0\u1665\0\u16a4\0\u16e3\0\u1722\0\u1761\0\u17a0"+
- "\0\u17df\0\u181e\0\u185d\0\u189c\0\u18db\0\u191a\0\u1959\0\u1998"+
- "\0\u19d7\0\u1a16\0\u1a55\0\u1a94\0\u1ad3\0\u03b1\0\u1b12\0\u1b51"+
- "\0\u1b90\0\u1bcf\0\u1c0e\0\u1c4d\0\77\0\u113a\0\u1179\0\u1c8c"+
- "\0\u0627\0\77\0\u1236\0\77\0\77\0\u1ccb\0\u095a\0\u1d0a"+
- "\0\u1d49\0\u1d88\0\u1dc7\0\u1e06\0\u1e45\0\u1e84\0\u1ec3\0\u1f02"+
- "\0\u1f41\0\u1f80\0\u1fbf\0\u1ffe\0\u203d\0\u207c\0\u20bb\0\u03b1"+
- "\0\u03b1\0\u03b1\0\u03b1\0\u20fa\0\u2139\0\u2178\0\u21b7\0\u03b1"+
- "\0\u21f6\0\u2235\0\u2274\0\u22b3\0\u03b1\0\u22f2\0\u2331\0\u03b1"+
- "\0\u2370\0\u23af\0\u23ee\0\u242d\0\u246c\0\u24ab\0\u24ea\0\u2529"+
- "\0\u2568\0\u25a7\0\u25e6\0\u2625\0\u03b1\0\u2664\0\u26a3\0\u03b1"+
- "\0\u26e2\0\u03b1\0\u2721\0\u2760\0\u03b1\0\u279f\0\u27de\0\u281d"+
- "\0\u285c\0\u289b\0\u28da\0\u03b1\0\u2919\0\u2958\0\u2958\0\u03b1"+
- "\0\u03b1\0\u2997\0\u29d6\0\u2a15\0\u2a54\0\u2a93\0\u03b1\0\u03b1"+
- "\0\u03b1\0\u03b1\0\u03b1\0\u03b1\0\u2ad2\0\u2b11\0\u2b50\0\u03b1"+
- "\0\u03b1\0\u2b8f\0\u2bce\0\u2c0d\0\u2c4c\0\u03b1\0\u03b1\0\u03b1"+
- "\0\u2c8b\0\u2cca\0\u03b1\0\u03b1";
-
- private static int [] zzUnpackRowMap() {
- int [] result = new int[252];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackRowMap(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
- }
-
- /**
- * The transition table of the DFA
- */
- private static final int [] ZZ_TRANS = zzUnpackTrans();
-
- private static final String ZZ_TRANS_PACKED_0 =
- "\1\2\3\3\1\4\1\5\1\6\1\7\1\10\1\11"+
- "\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21"+
- "\1\20\1\22\1\23\1\24\2\20\1\25\1\26\1\27"+
- "\1\30\1\31\2\20\1\32\1\26\1\33\1\2\1\34"+
- "\1\27\1\20\1\35\1\36\1\37\1\40\1\41\1\42"+
- "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+
- "\1\53\1\54\1\55\1\56\1\57\1\60\1\20\1\61"+
- "\3\20\100\0\3\3\77\0\1\62\1\63\40\0\1\64"+
- "\76\0\1\65\37\0\1\66\1\67\1\70\1\0\1\71"+
- "\1\72\1\73\1\74\1\0\1\75\1\76\1\77\63\0"+
- "\1\20\1\100\17\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\4\20\1\101\2\20\1\102"+
- "\1\20\1\103\7\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\1\20\1\104\3\20\7\0\10\20\1\105"+
- "\1\106\7\20\1\0\2\20\1\0\1\20\1\107\3\20"+
- "\3\0\2\20\24\0\5\20\7\0\2\20\1\110\16\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\1\111\20\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\2\20\1\112\11\20\1\113"+
- "\4\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\14\20\1\114\4\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\6\20\1\115"+
- "\12\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\1\116\1\20\1\117\16\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\21\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\13\20\1\120\5\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\12\20\1\121\6\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\1\122\13\20\1\123\4\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\14\20\1\124"+
- "\4\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\30\0\1\125\1\26\2\0\1\31\3\0\1\26"+
- "\5\0\1\126\44\0\1\26\15\0\1\26\1\127\76\0"+
- "\1\130\57\0\1\26\15\0\1\26\1\127\1\0\1\131"+
- "\1\0\1\132\46\0\3\20\1\133\15\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\41\134\1\135"+
- "\1\136\34\134\41\137\1\0\1\140\34\137\46\0\1\141"+
- "\76\0\1\142\61\0\1\26\2\0\1\31\3\0\1\26"+
- "\5\0\1\143\4\0\1\144\71\0\1\145\5\0\1\146"+
- "\70\0\1\147\76\0\1\150\76\0\1\151\20\0\1\152"+
- "\77\0\1\153\54\0\1\154\22\0\1\155\14\0\21\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\2\20"+
- "\1\156\2\20\1\62\2\0\74\62\5\63\1\157\71\63"+
- "\10\0\1\160\77\0\1\161\77\0\1\162\4\0\1\163"+
- "\1\164\70\0\1\165\75\0\1\166\103\0\1\167\75\0"+
- "\1\170\1\0\1\171\75\0\1\172\72\0\1\173\103\0"+
- "\1\174\66\0\1\20\1\175\17\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\1\176\2\20"+
- "\1\177\10\20\1\200\4\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\21\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\3\20\1\201\1\20"+
- "\7\0\2\20\1\202\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\7\20\1\203\11\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\13\20\1\204\5\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\1\20\1\205\17\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\7\20\1\206\2\20\1\207\6\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\4\20"+
- "\1\210\14\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\16\20\1\211\2\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\6\20"+
- "\1\212\6\20\1\213\3\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\3\20\1\214\15\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\4\20\1\215\14\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\21\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\1\20\1\216\3\20"+
- "\7\0\21\20\1\0\2\20\1\0\3\20\1\217\1\20"+
- "\3\0\2\20\24\0\5\20\7\0\2\20\1\220\16\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\1\20\1\221\17\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\10\20\1\222\10\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\4\20\1\223\14\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\31\0\1\224\2\0\1\224"+
- "\3\0\1\224\71\0\1\225\52\0\1\226\1\0\1\226"+
- "\2\0\2\226\6\0\1\226\4\0\2\226\1\0\1\226"+
- "\1\0\3\226\70\0\1\227\1\0\1\227\3\0\1\227"+
- "\45\0\2\20\1\230\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\41\134\1\231\1\136\34\134"+
- "\43\0\1\232\33\0\2\137\1\0\40\137\1\233\33\137"+
- "\46\0\1\234\76\0\1\235\37\0\7\20\1\236\11\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\4\63\1\237\1\157\71\63\10\0\1\240\112\0\1\241"+
- "\64\0\1\242\100\0\1\243\72\0\1\244\115\0\1\245"+
- "\64\0\1\75\101\0\1\244\56\0\1\170\2\0\74\170"+
- "\24\0\1\246\71\0\1\244\66\0\1\247\103\0\1\250"+
- "\71\0\2\20\1\251\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\4\20\1\252\14\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\13\20\1\253\5\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\15\20\1\254\3\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\2\20\1\255\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\2\20\1\256\16\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\4\20\1\257\14\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\17\20\1\260\1\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\2\20\1\261\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\4\20\1\262\14\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\3\20\1\263\15\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\13\20\1\264\5\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\14\20\1\265\4\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\1\266\6\20\1\267"+
- "\11\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\11\20\1\270\7\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\21\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\1\20\1\271"+
- "\3\20\7\0\7\20\1\272\11\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\11\20\1\273"+
- "\7\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\3\20\1\274\15\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\2\20\1\275"+
- "\16\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\1\20\1\276\2\20\1\277\14\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\14\20\1\300\4\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\11\0\1\301\2\0\1\224\15\0"+
- "\1\224\53\0\1\302\20\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\11\20\1\303\7\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\11\0\1\304\100\0\1\305\106\0\1\306\71\0\1\307"+
- "\71\0\1\170\103\0\1\310\100\0\1\311\103\0\1\312"+
- "\62\0\1\313\74\0\3\20\1\314\15\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\2\20"+
- "\1\315\4\20\1\316\11\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\15\20\1\317\3\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\21\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\1\320\4\20\7\0\14\20\1\321\4\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\12\20\1\322\6\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\15\20\1\323\3\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\3\20\1\324\15\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\6\20\1\325\12\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\13\20\1\326\5\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\10\20\1\327\10\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\1\330\20\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\21\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\4\20\1\331\7\0\7\20\1\332"+
- "\11\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\1\333\20\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\4\20\1\334\14\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\7\20\1\335\11\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\30\0\1\336\1\337\2\0"+
- "\1\337\3\0\1\337\12\0\1\336\32\0\21\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\1\340\4\20"+
- "\7\0\2\20\1\341\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\12\0\1\342\102\0\1\343"+
- "\72\0\1\170\101\0\1\170\1\0\1\344\76\0\1\171"+
- "\101\0\1\345\102\0\1\346\65\0\1\170\70\0\4\20"+
- "\1\347\14\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\15\20\1\350\3\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\4\20"+
- "\1\351\14\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\6\20\1\352\12\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\21\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\2\20"+
- "\1\353\2\20\7\0\10\20\1\354\10\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\11\20"+
- "\1\355\7\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\2\20\1\356\16\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\3\20"+
- "\1\357\15\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\2\20\1\360\16\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\15\20"+
- "\1\361\3\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\4\20\1\362\14\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\10\20"+
- "\1\363\10\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\31\0\1\337\2\0\1\337\3\0\1\337"+
- "\51\0\1\170\106\0\1\364\74\0\1\365\71\0\1\244"+
- "\71\0\1\170\76\0\4\20\1\366\14\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\5\20"+
- "\1\367\13\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\5\20\1\370\13\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\14\20"+
- "\1\371\4\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\13\20\1\372\5\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\17\0\1\170"+
- "\101\0\1\342\63\0\3\20\1\373\15\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\2\20"+
- "\1\374\16\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20";
-
- private static int [] zzUnpackTrans() {
- int [] result = new int[11529];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackTrans(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
-
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
- private static final char[] EMPTY_BUFFER = new char[0];
- private static final int YYEOF = -1;
- private static java.io.Reader zzReader = null; // Fake
-
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
-
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
-
- private static final String ZZ_ATTRIBUTE_PACKED_0 =
- "\1\0\1\11\34\1\3\11\4\1\10\11\5\1\1\0"+
- "\2\11\12\0\25\1\2\11\4\0\1\1\1\0\1\11"+
- "\3\0\11\11\1\1\1\0\2\11\1\1\11\0\1\1"+
- "\4\0\30\1\1\11\4\1\1\11\1\1\2\11\2\1"+
- "\11\0\30\1\1\0\2\1\10\0\22\1\1\0\3\1"+
- "\5\0\15\1\2\0\7\1";
-
- private static int [] zzUnpackAttribute() {
- int [] result = new int[252];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackAttribute(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
- /** the current state of the DFA */
- private int zzState;
-
- /** the current lexical state */
- private int zzLexicalState = YYINITIAL;
-
- /** this buffer contains the current text to be matched and is
- the source of the yytext() string */
- private CharSequence zzBuffer = "";
-
- /** this buffer may contains the current text array to be matched when it is cheap to acquire it */
- private char[] zzBufferArray;
-
- /** the textposition at the last accepting state */
- private int zzMarkedPos;
-
- /** the textposition at the last state to be included in yytext */
- private int zzPushbackPos;
-
- /** the current text position in the buffer */
- private int zzCurrentPos;
-
- /** startRead marks the beginning of the yytext() string in the buffer */
- private int zzStartRead;
-
- /** endRead marks the last character in the buffer, that has been read
- from input */
- private int zzEndRead;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /** zzAtEOF == true <=> the scanner is at the EOF */
- private boolean zzAtEOF;
-
- /* user code: */
- public _SourcePawnLexer() {
- this((java.io.Reader)null);
- }
-
-
- public _SourcePawnLexer(java.io.Reader in) {
- this.zzReader = in;
- }
-
- /**
- * Creates a new scanner.
- * There is also java.io.Reader version of this constructor.
- *
- * @param in the java.io.Inputstream to read input from.
- */
- public _SourcePawnLexer(java.io.InputStream in) {
- this(new java.io.InputStreamReader(in));
- }
-
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char [] zzUnpackCMap(String packed) {
- char [] map = new char[0x10000];
- int i = 0; /* index in packed string */
- int j = 0; /* index in unpacked array */
- while (i < 144) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do map[j++] = value; while (--count > 0);
- }
- return map;
- }
-
- public final int getTokenStart(){
- return zzStartRead;
- }
-
- public final int getTokenEnd(){
- return getTokenStart() + yylength();
- }
-
- public void reset(CharSequence buffer, int start, int end,int initialState){
- zzBuffer = buffer;
- zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer);
- zzCurrentPos = zzMarkedPos = zzStartRead = start;
- zzPushbackPos = 0;
- zzAtEOF = false;
- zzAtBOL = true;
- zzEndRead = end;
- yybegin(initialState);
- }
-
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
- return true;
- }
-
-
- /**
- * Returns the current lexical state.
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
-
- /**
- * Returns the text matched by the current regular expression.
- */
- public final CharSequence yytext() {
- return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
- }
-
-
- /**
- * Returns the character at position pos from the
- * matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch.
- * A value from 0 to yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos);
- }
-
-
- /**
- * Returns the length of the matched text region.
- */
- public final int yylength() {
- return zzMarkedPos-zzStartRead;
- }
-
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of
- * yypushback(int) and a match-all fallback rule) this method
- * will only be called with things that "Can't Possibly Happen".
- * If this method is called, something is seriously wrong
- * (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done
- * in error fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again.
- * This number must not be greater than yylength()!
- */
- public void yypushback(int number) {
- if ( number > yylength() )
- zzScanError(ZZ_PUSHBACK_2BIG);
-
- zzMarkedPos -= number;
- }
-
-
- /**
- * Resumes scanning until the next regular expression is matched,
- * the end of input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- */
- public IElementType advance() throws java.io.IOException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- CharSequence zzBufferL = zzBuffer;
- char[] zzBufferArrayL = zzBufferArray;
- char [] zzCMapL = ZZ_CMAP;
-
- int [] zzTransL = ZZ_TRANS;
- int [] zzRowMapL = ZZ_ROWMAP;
- int [] zzAttrL = ZZ_ATTRIBUTE;
-
- while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- zzAction = -1;
-
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
-
- zzForAction: {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL)
- zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
- else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
- }
- }
- int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
- if (zzNext == -1) break zzForAction;
- zzState = zzNext;
-
- int zzAttributes = zzAttrL[zzState];
- if ( (zzAttributes & 1) == 1 ) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ( (zzAttributes & 8) == 8 ) break zzForAction;
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 59:
- { return BLOCK_COMMENT;
- }
- case 87: break;
- case 18:
- { return LPAREN;
- }
- case 88: break;
- case 28:
- { return AND;
- }
- case 89: break;
- case 81:
- { return PUBLIC_KEYWORD;
- }
- case 90: break;
- case 42:
- { return OROR;
- }
- case 91: break;
- case 23:
- { return RBRACKET;
- }
- case 92: break;
- case 63:
- { return EXPR;
- }
- case 93: break;
- case 84:
- { return FORWARD_KEYWORD;
- }
- case 94: break;
- case 13:
- { return COLON;
- }
- case 95: break;
- case 82:
- { return DEFAULT_KEYWORD;
- }
- case 96: break;
- case 35:
- { return MINUSEQ;
- }
- case 97: break;
- case 9:
- { return EQ;
- }
- case 98: break;
- case 57:
- { return LTLTEQ;
- }
- case 99: break;
- case 52:
- { return FLOAT_LITERAL;
- }
- case 100: break;
- case 60:
- { return ENUM_KEYWORD;
- }
- case 101: break;
- case 85:
- { return OPERATOR_KEYWORD;
- }
- case 102: break;
- case 51:
- { return NEW_KEYWORD;
- }
- case 103: break;
- case 76:
- { return STRUCT_KEYWORD;
- }
- case 104: break;
- case 55:
- { return BINARY_LITERAL;
- }
- case 105: break;
- case 71:
- { return CONST_KEYWORD;
- }
- case 106: break;
- case 65:
- { return CASE_KEYWORD;
- }
- case 107: break;
- case 40:
- { return PLUSPLUS;
- }
- case 108: break;
- case 69:
- { return SLEEP_KEYWORD;
- }
- case 109: break;
- case 2:
- { return com.intellij.psi.TokenType.WHITE_SPACE;
- }
- case 110: break;
- case 75:
- { return STATIC_KEYWORD;
- }
- case 111: break;
- case 22:
- { return LBRACKET;
- }
- case 112: break;
- case 24:
- { return SEMICOLON;
- }
- case 113: break;
- case 78:
- { return SWITCH_KEYWORD;
- }
- case 114: break;
- case 25:
- { return COMMA;
- }
- case 115: break;
- case 16:
- { return XOR;
- }
- case 116: break;
- case 3:
- { return DIV;
- }
- case 117: break;
- case 14:
- { return PLUS;
- }
- case 118: break;
- case 34:
- { return MINUSMINUS;
- }
- case 119: break;
- case 43:
- { return XOREQ;
- }
- case 120: break;
- case 39:
- { return PLUSEQ;
- }
- case 121: break;
- case 37:
- { return EQEQ;
- }
- case 122: break;
- case 36:
- { return STRING_LITERAL;
- }
- case 123: break;
- case 26:
- { return LT;
- }
- case 124: break;
- case 44:
- { return PERCEQ;
- }
- case 125: break;
- case 80:
- { return NATIVE_KEYWORD;
- }
- case 126: break;
- case 4:
- { return ASTERISK;
- }
- case 127: break;
- case 46:
- { return LTLT;
- }
- case 128: break;
- case 10:
- { return EXCL;
- }
- case 129: break;
- case 30:
- { return DIVEQ;
- }
- case 130: break;
- case 8:
- { return DOT;
- }
- case 131: break;
- case 5:
- { return SYMBOL;
- }
- case 132: break;
- case 72:
- { return BREAK_KEYWORD;
- }
- case 133: break;
- case 50:
- { return FOR_KEYWORD;
- }
- case 134: break;
- case 62:
- { return EXIT_KEYWORD;
- }
- case 135: break;
- case 41:
- { return OREQ;
- }
- case 136: break;
- case 21:
- { return RBRACE;
- }
- case 137: break;
- case 32:
- { return DO_KEYWORD;
- }
- case 138: break;
- case 68:
- { return STOCK_KEYWORD;
- }
- case 139: break;
- case 27:
- { return GT;
- }
- case 140: break;
- case 61:
- { return ELSE_KEYWORD;
- }
- case 141: break;
- case 47:
- { return ANDEQ;
- }
- case 142: break;
- case 83:
- { return DEFINED_KEYWORD;
- }
- case 143: break;
- case 29:
- { return LINE_COMMENT;
- }
- case 144: break;
- case 31:
- { return ASTERISKEQ;
- }
- case 145: break;
- case 15:
- { return OR;
- }
- case 146: break;
- case 7:
- { return INTEGER_LITERAL;
- }
- case 147: break;
- case 74:
- { return ASSERT_KEYWORD;
- }
- case 148: break;
- case 20:
- { return LBRACE;
- }
- case 149: break;
- case 67:
- { return STATE_KEYWORD;
- }
- case 150: break;
- case 11:
- { return TILDE;
- }
- case 151: break;
- case 53:
- { return ELLIPSIS;
- }
- case 152: break;
- case 33:
- { return IF_KEYWORD;
- }
- case 153: break;
- case 70:
- { return TAGOF_KEYWORD;
- }
- case 154: break;
- case 73:
- { return WHILE_KEYWORD;
- }
- case 155: break;
- case 38:
- { return NE;
- }
- case 156: break;
- case 56:
- { return CHARACTER_LITERAL;
- }
- case 157: break;
- case 66:
- { return GOTO_KEYWORD;
- }
- case 158: break;
- case 1:
- { return com.intellij.psi.TokenType.BAD_CHARACTER;
- }
- case 159: break;
- case 86:
- { return CONTINUE_KEYWORD;
- }
- case 160: break;
- case 79:
- { return RETURN_KEYWORD;
- }
- case 161: break;
- case 6:
- { return MINUS;
- }
- case 162: break;
- case 45:
- { return LE;
- }
- case 163: break;
- case 19:
- { return RPAREN;
- }
- case 164: break;
- case 12:
- { return QUEST;
- }
- case 165: break;
- case 17:
- { return PERC;
- }
- case 166: break;
- case 77:
- { return SIZEOF_KEYWORD;
- }
- case 167: break;
- case 48:
- { return ANDAND;
- }
- case 168: break;
- case 64:
- { return DECL_KEYWORD;
- }
- case 169: break;
- case 54:
- { return HEX_LITERAL;
- }
- case 170: break;
- case 58:
- { return GTGTEQ;
- }
- case 171: break;
- case 49:
- { return PREPROCESSOR_COMMENT;
- }
- case 172: break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- return null;
- }
- else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
- }
- }
-
-
-}
diff --git a/src/org/idea_sp/_SourcePawnLexer.java~ b/src/org/idea_sp/_SourcePawnLexer.java~
deleted file mode 100644
index 21872ed..0000000
--- a/src/org/idea_sp/_SourcePawnLexer.java~
+++ /dev/null
@@ -1,1053 +0,0 @@
-/* The following code was generated by JFlex 1.4.3 on 3/11/15 1:20 AM */
-
-package org.idea_sp;
-import com.intellij.lexer.*;
-import com.intellij.psi.tree.IElementType;
-import static org.idea_sp.psi.SourcePawnTypes.*;
-
-
-/**
- * This class is a scanner generated by
- * JFlex 1.4.3
- * on 3/11/15 1:20 AM from the specification file
- * /Users/they4kman/programming/idea-sp/src/org/idea_sp/SourcePawn.flex
- */
-public class _SourcePawnLexer implements FlexLexer {
- /** initial size of the lookahead buffer */
- private static final int ZZ_BUFFERSIZE = 16384;
-
- /** lexical states */
- public static final int YYINITIAL = 0;
-
- /**
- * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l
- * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l
- * at the beginning of a line
- * l is of the form l = 2*k, k a non negative integer
- */
- private static final int ZZ_LEXSTATE[] = {
- 0, 0
- };
-
- /**
- * Translates characters to character classes
- */
- private static final String ZZ_CMAP_PACKED =
- "\11\0\1\3\1\2\1\0\1\3\1\1\22\0\1\3\1\47\1\41"+
- "\1\6\1\0\1\56\1\71\1\43\1\57\1\60\1\5\1\53\1\66"+
- "\1\30\1\33\1\4\1\34\1\40\10\31\1\52\1\65\1\67\1\46"+
- "\1\70\1\51\1\44\6\36\24\45\1\63\1\42\1\64\1\55\1\32"+
- "\1\0\1\7\1\37\1\24\1\14\1\11\1\15\1\25\1\74\1\16"+
- "\1\45\1\72\1\20\1\26\1\17\1\23\1\21\1\45\1\12\1\10"+
- "\1\13\1\22\1\76\1\73\1\35\1\27\1\75\1\61\1\54\1\62"+
- "\1\50\uff81\0";
-
- /**
- * Translates characters to character classes
- */
- private static final char [] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);
-
- /**
- * Translates DFA states to action switch labels.
- */
- private static final int [] ZZ_ACTION = zzUnpackAction();
-
- private static final String ZZ_ACTION_PACKED_0 =
- "\1\0\1\1\1\2\1\3\1\4\1\1\16\5\1\6"+
- "\1\7\1\1\1\10\1\7\1\5\2\1\1\11\1\12"+
- "\1\13\1\14\1\15\1\16\1\17\1\20\1\21\1\22"+
- "\1\23\1\24\1\25\1\26\1\27\1\30\1\31\1\32"+
- "\1\33\1\34\1\5\1\35\1\0\1\36\1\37\12\0"+
- "\13\5\1\40\1\5\1\41\7\5\1\42\1\43\4\0"+
- "\1\5\1\0\1\44\3\0\1\45\1\46\1\47\1\50"+
- "\1\51\1\52\1\53\1\54\1\55\1\56\1\0\1\57"+
- "\1\60\1\5\11\0\1\61\4\0\17\5\1\62\1\5"+
- "\1\63\5\5\1\64\1\65\1\66\1\67\1\5\1\44"+
- "\2\70\1\71\1\72\1\5\1\73\11\0\7\5\1\74"+
- "\1\75\1\76\1\77\4\5\1\100\4\5\1\101\2\5"+
- "\1\102\1\0\2\5\10\0\1\5\1\103\2\5\1\104"+
- "\1\5\1\105\2\5\1\106\6\5\1\107\1\5\1\0"+
- "\1\64\1\110\1\111\5\0\1\112\1\113\1\114\1\115"+
- "\1\116\1\117\3\5\1\120\1\121\2\5\2\0\1\122"+
- "\1\123\1\124\2\5\1\125\1\126";
-
- private static int [] zzUnpackAction() {
- int [] result = new int[252];
- int offset = 0;
- offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackAction(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
-
- /**
- * Translates a state to a row index in the transition table
- */
- private static final int [] ZZ_ROWMAP = zzUnpackRowMap();
-
- private static final String ZZ_ROWMAP_PACKED_0 =
- "\0\0\0\77\0\176\0\275\0\374\0\u013b\0\u017a\0\u01b9"+
- "\0\u01f8\0\u0237\0\u0276\0\u02b5\0\u02f4\0\u0333\0\u0372\0\u03b1"+
- "\0\u03f0\0\u042f\0\u046e\0\u04ad\0\u04ec\0\u052b\0\u03b1\0\u056a"+
- "\0\u05a9\0\u05e8\0\u0627\0\u0666\0\u06a5\0\u06e4\0\77\0\77"+
- "\0\77\0\u0723\0\u0762\0\u07a1\0\u07e0\0\77\0\77\0\77"+
- "\0\77\0\77\0\77\0\77\0\77\0\u081f\0\u085e\0\u089d"+
- "\0\u08dc\0\u091b\0\u095a\0\77\0\77\0\u0999\0\u09d8\0\u0a17"+
- "\0\u0a56\0\u0a95\0\u0ad4\0\u0b13\0\u0b52\0\u0b91\0\u0bd0\0\u0c0f"+
- "\0\u0c4e\0\u0c8d\0\u0ccc\0\u0d0b\0\u0d4a\0\u0d89\0\u0dc8\0\u0e07"+
- "\0\u0e46\0\u0e85\0\u03b1\0\u0ec4\0\u03b1\0\u0f03\0\u0f42\0\u0f81"+
- "\0\u0fc0\0\u0fff\0\u103e\0\u107d\0\77\0\77\0\u10bc\0\u10fb"+
- "\0\u113a\0\u1179\0\u11b8\0\u0627\0\77\0\u11f7\0\u1236\0\u1275"+
- "\0\77\0\77\0\77\0\77\0\77\0\77\0\77\0\77"+
- "\0\77\0\u12b4\0\u12f3\0\77\0\77\0\u1332\0\u1371\0\u13b0"+
- "\0\u13ef\0\u142e\0\u146d\0\u14ac\0\u14eb\0\u152a\0\u1569\0\u15a8"+
- "\0\u15e7\0\u1626\0\u1665\0\u16a4\0\u16e3\0\u1722\0\u1761\0\u17a0"+
- "\0\u17df\0\u181e\0\u185d\0\u189c\0\u18db\0\u191a\0\u1959\0\u1998"+
- "\0\u19d7\0\u1a16\0\u1a55\0\u1a94\0\u1ad3\0\u03b1\0\u1b12\0\u1b51"+
- "\0\u1b90\0\u1bcf\0\u1c0e\0\u1c4d\0\77\0\u113a\0\u1179\0\u1c8c"+
- "\0\u0627\0\77\0\u1236\0\77\0\77\0\u1ccb\0\u095a\0\u1d0a"+
- "\0\u1d49\0\u1d88\0\u1dc7\0\u1e06\0\u1e45\0\u1e84\0\u1ec3\0\u1f02"+
- "\0\u1f41\0\u1f80\0\u1fbf\0\u1ffe\0\u203d\0\u207c\0\u20bb\0\u03b1"+
- "\0\u03b1\0\u03b1\0\u03b1\0\u20fa\0\u2139\0\u2178\0\u21b7\0\u03b1"+
- "\0\u21f6\0\u2235\0\u2274\0\u22b3\0\u03b1\0\u22f2\0\u2331\0\u03b1"+
- "\0\u2370\0\u23af\0\u23ee\0\u242d\0\u246c\0\u24ab\0\u24ea\0\u2529"+
- "\0\u2568\0\u25a7\0\u25e6\0\u2625\0\u03b1\0\u2664\0\u26a3\0\u03b1"+
- "\0\u26e2\0\u03b1\0\u2721\0\u2760\0\u03b1\0\u279f\0\u27de\0\u281d"+
- "\0\u285c\0\u289b\0\u28da\0\u03b1\0\u2919\0\u2958\0\u2958\0\u03b1"+
- "\0\u03b1\0\u2997\0\u29d6\0\u2a15\0\u2a54\0\u2a93\0\u03b1\0\u03b1"+
- "\0\u03b1\0\u03b1\0\u03b1\0\u03b1\0\u2ad2\0\u2b11\0\u2b50\0\u03b1"+
- "\0\u03b1\0\u2b8f\0\u2bce\0\u2c0d\0\u2c4c\0\u03b1\0\u03b1\0\u03b1"+
- "\0\u2c8b\0\u2cca\0\u03b1\0\u03b1";
-
- private static int [] zzUnpackRowMap() {
- int [] result = new int[252];
- int offset = 0;
- offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackRowMap(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int high = packed.charAt(i++) << 16;
- result[j++] = high | packed.charAt(i++);
- }
- return j;
- }
-
- /**
- * The transition table of the DFA
- */
- private static final int [] ZZ_TRANS = zzUnpackTrans();
-
- private static final String ZZ_TRANS_PACKED_0 =
- "\1\2\3\3\1\4\1\5\1\6\1\7\1\10\1\11"+
- "\1\12\1\13\1\14\1\15\1\16\1\17\1\20\1\21"+
- "\1\20\1\22\1\23\1\24\2\20\1\25\1\26\1\27"+
- "\1\30\1\31\2\20\1\32\1\26\1\33\1\2\1\34"+
- "\1\27\1\20\1\35\1\36\1\37\1\40\1\41\1\42"+
- "\1\43\1\44\1\45\1\46\1\47\1\50\1\51\1\52"+
- "\1\53\1\54\1\55\1\56\1\57\1\60\1\20\1\61"+
- "\3\20\100\0\3\3\77\0\1\62\1\63\40\0\1\64"+
- "\76\0\1\65\37\0\1\66\1\67\1\70\1\0\1\71"+
- "\1\72\1\73\1\74\1\0\1\75\1\76\1\77\63\0"+
- "\1\20\1\100\17\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\4\20\1\101\2\20\1\102"+
- "\1\20\1\103\7\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\1\20\1\104\3\20\7\0\10\20\1\105"+
- "\1\106\7\20\1\0\2\20\1\0\1\20\1\107\3\20"+
- "\3\0\2\20\24\0\5\20\7\0\2\20\1\110\16\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\1\111\20\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\2\20\1\112\11\20\1\113"+
- "\4\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\14\20\1\114\4\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\6\20\1\115"+
- "\12\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\1\116\1\20\1\117\16\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\21\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\13\20\1\120\5\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\12\20\1\121\6\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\1\122\13\20\1\123\4\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\14\20\1\124"+
- "\4\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\30\0\1\125\1\26\2\0\1\31\3\0\1\26"+
- "\5\0\1\126\44\0\1\26\15\0\1\26\1\127\76\0"+
- "\1\130\57\0\1\26\15\0\1\26\1\127\1\0\1\131"+
- "\1\0\1\132\46\0\3\20\1\133\15\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\41\134\1\135"+
- "\1\136\34\134\41\137\1\0\1\140\34\137\46\0\1\141"+
- "\76\0\1\142\61\0\1\26\2\0\1\31\3\0\1\26"+
- "\5\0\1\143\4\0\1\144\71\0\1\145\5\0\1\146"+
- "\70\0\1\147\76\0\1\150\76\0\1\151\20\0\1\152"+
- "\77\0\1\153\54\0\1\154\22\0\1\155\14\0\21\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\2\20"+
- "\1\156\2\20\1\62\2\0\74\62\5\63\1\157\71\63"+
- "\10\0\1\160\77\0\1\161\77\0\1\162\4\0\1\163"+
- "\1\164\70\0\1\165\75\0\1\166\103\0\1\167\75\0"+
- "\1\170\1\0\1\171\75\0\1\172\72\0\1\173\103\0"+
- "\1\174\66\0\1\20\1\175\17\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\1\176\2\20"+
- "\1\177\10\20\1\200\4\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\21\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\3\20\1\201\1\20"+
- "\7\0\2\20\1\202\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\7\20\1\203\11\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\13\20\1\204\5\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\1\20\1\205\17\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\7\20\1\206\2\20\1\207\6\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\4\20"+
- "\1\210\14\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\16\20\1\211\2\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\6\20"+
- "\1\212\6\20\1\213\3\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\3\20\1\214\15\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\4\20\1\215\14\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\21\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\1\20\1\216\3\20"+
- "\7\0\21\20\1\0\2\20\1\0\3\20\1\217\1\20"+
- "\3\0\2\20\24\0\5\20\7\0\2\20\1\220\16\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\1\20\1\221\17\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\10\20\1\222\10\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\4\20\1\223\14\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\31\0\1\224\2\0\1\224"+
- "\3\0\1\224\71\0\1\225\52\0\1\226\1\0\1\226"+
- "\2\0\2\226\6\0\1\226\4\0\2\226\1\0\1\226"+
- "\1\0\3\226\70\0\1\227\1\0\1\227\3\0\1\227"+
- "\45\0\2\20\1\230\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\41\134\1\231\1\136\34\134"+
- "\43\0\1\232\33\0\2\137\1\0\40\137\1\233\33\137"+
- "\46\0\1\234\76\0\1\235\37\0\7\20\1\236\11\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\4\63\1\237\1\157\71\63\10\0\1\240\112\0\1\241"+
- "\64\0\1\242\100\0\1\243\72\0\1\244\115\0\1\245"+
- "\64\0\1\75\101\0\1\244\56\0\1\170\2\0\74\170"+
- "\24\0\1\246\71\0\1\244\66\0\1\247\103\0\1\250"+
- "\71\0\2\20\1\251\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\4\20\1\252\14\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\13\20\1\253\5\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\15\20\1\254\3\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\2\20\1\255\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\2\20\1\256\16\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\4\20\1\257\14\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\17\20\1\260\1\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\2\20\1\261\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\4\20\1\262\14\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\3\20\1\263\15\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\13\20\1\264\5\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\14\20\1\265\4\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\1\266\6\20\1\267"+
- "\11\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\11\20\1\270\7\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\21\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\1\20\1\271"+
- "\3\20\7\0\7\20\1\272\11\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\11\20\1\273"+
- "\7\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\3\20\1\274\15\20\1\0\2\20\1\0"+
- "\5\20\3\0\2\20\24\0\5\20\7\0\2\20\1\275"+
- "\16\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\1\20\1\276\2\20\1\277\14\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\14\20\1\300\4\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\11\0\1\301\2\0\1\224\15\0"+
- "\1\224\53\0\1\302\20\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\11\20\1\303\7\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\11\0\1\304\100\0\1\305\106\0\1\306\71\0\1\307"+
- "\71\0\1\170\103\0\1\310\100\0\1\311\103\0\1\312"+
- "\62\0\1\313\74\0\3\20\1\314\15\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\2\20"+
- "\1\315\4\20\1\316\11\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\15\20\1\317\3\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\21\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\1\320\4\20\7\0\14\20\1\321\4\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\12\20\1\322\6\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\15\20\1\323\3\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\3\20\1\324\15\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\6\20\1\325\12\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\13\20\1\326\5\20\1\0\2\20\1\0\5\20\3\0"+
- "\2\20\24\0\5\20\7\0\10\20\1\327\10\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\5\20\7\0"+
- "\1\330\20\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\21\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\4\20\1\331\7\0\7\20\1\332"+
- "\11\20\1\0\2\20\1\0\5\20\3\0\2\20\24\0"+
- "\5\20\7\0\1\333\20\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\7\0\4\20\1\334\14\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\5\20"+
- "\7\0\7\20\1\335\11\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\30\0\1\336\1\337\2\0"+
- "\1\337\3\0\1\337\12\0\1\336\32\0\21\20\1\0"+
- "\2\20\1\0\5\20\3\0\2\20\24\0\1\340\4\20"+
- "\7\0\2\20\1\341\16\20\1\0\2\20\1\0\5\20"+
- "\3\0\2\20\24\0\5\20\12\0\1\342\102\0\1\343"+
- "\72\0\1\170\101\0\1\170\1\0\1\344\76\0\1\171"+
- "\101\0\1\345\102\0\1\346\65\0\1\170\70\0\4\20"+
- "\1\347\14\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\15\20\1\350\3\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\4\20"+
- "\1\351\14\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\6\20\1\352\12\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\21\20"+
- "\1\0\2\20\1\0\5\20\3\0\2\20\24\0\2\20"+
- "\1\353\2\20\7\0\10\20\1\354\10\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\11\20"+
- "\1\355\7\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\2\20\1\356\16\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\3\20"+
- "\1\357\15\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\2\20\1\360\16\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\15\20"+
- "\1\361\3\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\4\20\1\362\14\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\10\20"+
- "\1\363\10\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\31\0\1\337\2\0\1\337\3\0\1\337"+
- "\51\0\1\170\106\0\1\364\74\0\1\365\71\0\1\244"+
- "\71\0\1\170\76\0\4\20\1\366\14\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\5\20"+
- "\1\367\13\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\5\20\1\370\13\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\14\20"+
- "\1\371\4\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20\7\0\13\20\1\372\5\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\17\0\1\170"+
- "\101\0\1\342\63\0\3\20\1\373\15\20\1\0\2\20"+
- "\1\0\5\20\3\0\2\20\24\0\5\20\7\0\2\20"+
- "\1\374\16\20\1\0\2\20\1\0\5\20\3\0\2\20"+
- "\24\0\5\20";
-
- private static int [] zzUnpackTrans() {
- int [] result = new int[11529];
- int offset = 0;
- offset = zzUnpackTrans(ZZ_TRANS_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackTrans(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- value--;
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
-
- /* error codes */
- private static final int ZZ_UNKNOWN_ERROR = 0;
- private static final int ZZ_NO_MATCH = 1;
- private static final int ZZ_PUSHBACK_2BIG = 2;
- private static final char[] EMPTY_BUFFER = new char[0];
- private static final int YYEOF = -1;
- private static java.io.Reader zzReader = null; // Fake
-
- /* error messages for the codes above */
- private static final String ZZ_ERROR_MSG[] = {
- "Unkown internal scanner error",
- "Error: could not match input",
- "Error: pushback value was too large"
- };
-
- /**
- * ZZ_ATTRIBUTE[aState] contains the attributes of state aState
- */
- private static final int [] ZZ_ATTRIBUTE = zzUnpackAttribute();
-
- private static final String ZZ_ATTRIBUTE_PACKED_0 =
- "\1\0\1\11\34\1\3\11\4\1\10\11\5\1\1\0"+
- "\2\11\12\0\25\1\2\11\4\0\1\1\1\0\1\11"+
- "\3\0\11\11\1\1\1\0\2\11\1\1\11\0\1\1"+
- "\4\0\30\1\1\11\4\1\1\11\1\1\2\11\2\1"+
- "\11\0\30\1\1\0\2\1\10\0\22\1\1\0\3\1"+
- "\5\0\15\1\2\0\7\1";
-
- private static int [] zzUnpackAttribute() {
- int [] result = new int[252];
- int offset = 0;
- offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);
- return result;
- }
-
- private static int zzUnpackAttribute(String packed, int offset, int [] result) {
- int i = 0; /* index in packed string */
- int j = offset; /* index in unpacked array */
- int l = packed.length();
- while (i < l) {
- int count = packed.charAt(i++);
- int value = packed.charAt(i++);
- do result[j++] = value; while (--count > 0);
- }
- return j;
- }
-
- /** the current state of the DFA */
- private int zzState;
-
- /** the current lexical state */
- private int zzLexicalState = YYINITIAL;
-
- /** this buffer contains the current text to be matched and is
- the source of the yytext() string */
- private CharSequence zzBuffer = "";
-
- /** this buffer may contains the current text array to be matched when it is cheap to acquire it */
- private char[] zzBufferArray;
-
- /** the textposition at the last accepting state */
- private int zzMarkedPos;
-
- /** the textposition at the last state to be included in yytext */
- private int zzPushbackPos;
-
- /** the current text position in the buffer */
- private int zzCurrentPos;
-
- /** startRead marks the beginning of the yytext() string in the buffer */
- private int zzStartRead;
-
- /** endRead marks the last character in the buffer, that has been read
- from input */
- private int zzEndRead;
-
- /**
- * zzAtBOL == true <=> the scanner is currently at the beginning of a line
- */
- private boolean zzAtBOL = true;
-
- /** zzAtEOF == true <=> the scanner is at the EOF */
- private boolean zzAtEOF;
-
- /* user code: */
- public _SourcePawnLexer() {
- this((java.io.Reader)null);
- }
-
-
- public _SourcePawnLexer(java.io.Reader in) {
- this.zzReader = in;
- }
-
- /**
- * Creates a new scanner.
- * There is also java.io.Reader version of this constructor.
- *
- * @param in the java.io.Inputstream to read input from.
- */
- public _SourcePawnLexer(java.io.InputStream in) {
- this(new java.io.InputStreamReader(in));
- }
-
- /**
- * Unpacks the compressed character translation table.
- *
- * @param packed the packed character translation table
- * @return the unpacked character translation table
- */
- private static char [] zzUnpackCMap(String packed) {
- char [] map = new char[0x10000];
- int i = 0; /* index in packed string */
- int j = 0; /* index in unpacked array */
- while (i < 144) {
- int count = packed.charAt(i++);
- char value = packed.charAt(i++);
- do map[j++] = value; while (--count > 0);
- }
- return map;
- }
-
- public final int getTokenStart(){
- return zzStartRead;
- }
-
- public final int getTokenEnd(){
- return getTokenStart() + yylength();
- }
-
- public void reset(CharSequence buffer, int start, int end,int initialState){
- zzBuffer = buffer;
- zzBufferArray = com.intellij.util.text.CharArrayUtil.fromSequenceWithoutCopying(buffer);
- zzCurrentPos = zzMarkedPos = zzStartRead = start;
- zzPushbackPos = 0;
- zzAtEOF = false;
- zzAtBOL = true;
- zzEndRead = end;
- yybegin(initialState);
- }
-
- /**
- * Refills the input buffer.
- *
- * @return false, iff there was new input.
- *
- * @exception java.io.IOException if any I/O-Error occurs
- */
- private boolean zzRefill() throws java.io.IOException {
- return true;
- }
-
-
- /**
- * Returns the current lexical state.
- */
- public final int yystate() {
- return zzLexicalState;
- }
-
-
- /**
- * Enters a new lexical state
- *
- * @param newState the new lexical state
- */
- public final void yybegin(int newState) {
- zzLexicalState = newState;
- }
-
-
- /**
- * Returns the text matched by the current regular expression.
- */
- public final CharSequence yytext() {
- return zzBuffer.subSequence(zzStartRead, zzMarkedPos);
- }
-
-
- /**
- * Returns the character at position pos from the
- * matched text.
- *
- * It is equivalent to yytext().charAt(pos), but faster
- *
- * @param pos the position of the character to fetch.
- * A value from 0 to yylength()-1.
- *
- * @return the character at position pos
- */
- public final char yycharat(int pos) {
- return zzBufferArray != null ? zzBufferArray[zzStartRead+pos]:zzBuffer.charAt(zzStartRead+pos);
- }
-
-
- /**
- * Returns the length of the matched text region.
- */
- public final int yylength() {
- return zzMarkedPos-zzStartRead;
- }
-
-
- /**
- * Reports an error that occured while scanning.
- *
- * In a wellformed scanner (no or only correct usage of
- * yypushback(int) and a match-all fallback rule) this method
- * will only be called with things that "Can't Possibly Happen".
- * If this method is called, something is seriously wrong
- * (e.g. a JFlex bug producing a faulty scanner etc.).
- *
- * Usual syntax/scanner level error handling should be done
- * in error fallback rules.
- *
- * @param errorCode the code of the errormessage to display
- */
- private void zzScanError(int errorCode) {
- String message;
- try {
- message = ZZ_ERROR_MSG[errorCode];
- }
- catch (ArrayIndexOutOfBoundsException e) {
- message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];
- }
-
- throw new Error(message);
- }
-
-
- /**
- * Pushes the specified amount of characters back into the input stream.
- *
- * They will be read again by then next call of the scanning method
- *
- * @param number the number of characters to be read again.
- * This number must not be greater than yylength()!
- */
- public void yypushback(int number) {
- if ( number > yylength() )
- zzScanError(ZZ_PUSHBACK_2BIG);
-
- zzMarkedPos -= number;
- }
-
-
- /**
- * Resumes scanning until the next regular expression is matched,
- * the end of input is encountered or an I/O-Error occurs.
- *
- * @return the next token
- * @exception java.io.IOException if any I/O-Error occurs
- */
- public IElementType advance() throws java.io.IOException {
- int zzInput;
- int zzAction;
-
- // cached fields:
- int zzCurrentPosL;
- int zzMarkedPosL;
- int zzEndReadL = zzEndRead;
- CharSequence zzBufferL = zzBuffer;
- char[] zzBufferArrayL = zzBufferArray;
- char [] zzCMapL = ZZ_CMAP;
-
- int [] zzTransL = ZZ_TRANS;
- int [] zzRowMapL = ZZ_ROWMAP;
- int [] zzAttrL = ZZ_ATTRIBUTE;
-
- while (true) {
- zzMarkedPosL = zzMarkedPos;
-
- zzAction = -1;
-
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
-
- zzState = ZZ_LEXSTATE[zzLexicalState];
-
-
- zzForAction: {
- while (true) {
-
- if (zzCurrentPosL < zzEndReadL)
- zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
- else if (zzAtEOF) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- zzInput = (zzBufferArrayL != null ? zzBufferArrayL[zzCurrentPosL++] : zzBufferL.charAt(zzCurrentPosL++));
- }
- }
- int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
- if (zzNext == -1) break zzForAction;
- zzState = zzNext;
-
- int zzAttributes = zzAttrL[zzState];
- if ( (zzAttributes & 1) == 1 ) {
- zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
- if ( (zzAttributes & 8) == 8 ) break zzForAction;
- }
-
- }
- }
-
- // store back cached position
- zzMarkedPos = zzMarkedPosL;
-
- switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
- case 59:
- { return BLOCK_COMMENT;
- }
- case 87: break;
- case 18:
- { return LPAREN;
- }
- case 88: break;
- case 28:
- { return AND;
- }
- case 89: break;
- case 81:
- { return PUBLIC_KEYWORD;
- }
- case 90: break;
- case 42:
- { return OROR;
- }
- case 91: break;
- case 23:
- { return RBRACKET;
- }
- case 92: break;
- case 63:
- { return EXPR;
- }
- case 93: break;
- case 84:
- { return FORWARD_KEYWORD;
- }
- case 94: break;
- case 13:
- { return COLON;
- }
- case 95: break;
- case 82:
- { return DEFAULT_KEYWORD;
- }
- case 96: break;
- case 35:
- { return MINUSEQ;
- }
- case 97: break;
- case 9:
- { return EQ;
- }
- case 98: break;
- case 57:
- { return LTLTEQ;
- }
- case 99: break;
- case 52:
- { return FLOAT_LITERAL;
- }
- case 100: break;
- case 60:
- { return ENUM_KEYWORD;
- }
- case 101: break;
- case 85:
- { return OPERATOR_KEYWORD;
- }
- case 102: break;
- case 51:
- { return NEW_KEYWORD;
- }
- case 103: break;
- case 76:
- { return STRUCT_KEYWORD;
- }
- case 104: break;
- case 55:
- { return BINARY_LITERAL;
- }
- case 105: break;
- case 71:
- { return CONST_KEYWORD;
- }
- case 106: break;
- case 65:
- { return CASE_KEYWORD;
- }
- case 107: break;
- case 40:
- { return PLUSPLUS;
- }
- case 108: break;
- case 69:
- { return SLEEP_KEYWORD;
- }
- case 109: break;
- case 2:
- { return com.intellij.psi.TokenType.WHITE_SPACE;
- }
- case 110: break;
- case 75:
- { return STATIC_KEYWORD;
- }
- case 111: break;
- case 22:
- { return LBRACKET;
- }
- case 112: break;
- case 24:
- { return SEMICOLON;
- }
- case 113: break;
- case 78:
- { return SWITCH_KEYWORD;
- }
- case 114: break;
- case 25:
- { return COMMA;
- }
- case 115: break;
- case 16:
- { return XOR;
- }
- case 116: break;
- case 3:
- { return DIV;
- }
- case 117: break;
- case 14:
- { return PLUS;
- }
- case 118: break;
- case 34:
- { return MINUSMINUS;
- }
- case 119: break;
- case 43:
- { return XOREQ;
- }
- case 120: break;
- case 39:
- { return PLUSEQ;
- }
- case 121: break;
- case 37:
- { return EQEQ;
- }
- case 122: break;
- case 36:
- { return STRING_LITERAL;
- }
- case 123: break;
- case 26:
- { return LT;
- }
- case 124: break;
- case 44:
- { return PERCEQ;
- }
- case 125: break;
- case 80:
- { return NATIVE_KEYWORD;
- }
- case 126: break;
- case 4:
- { return ASTERISK;
- }
- case 127: break;
- case 46:
- { return LTLT;
- }
- case 128: break;
- case 10:
- { return EXCL;
- }
- case 129: break;
- case 30:
- { return DIVEQ;
- }
- case 130: break;
- case 8:
- { return DOT;
- }
- case 131: break;
- case 5:
- { return SYMBOL;
- }
- case 132: break;
- case 72:
- { return BREAK_KEYWORD;
- }
- case 133: break;
- case 50:
- { return FOR_KEYWORD;
- }
- case 134: break;
- case 62:
- { return EXIT_KEYWORD;
- }
- case 135: break;
- case 41:
- { return OREQ;
- }
- case 136: break;
- case 21:
- { return RBRACE;
- }
- case 137: break;
- case 32:
- { return DO_KEYWORD;
- }
- case 138: break;
- case 68:
- { return STOCK_KEYWORD;
- }
- case 139: break;
- case 27:
- { return GT;
- }
- case 140: break;
- case 61:
- { return ELSE_KEYWORD;
- }
- case 141: break;
- case 47:
- { return ANDEQ;
- }
- case 142: break;
- case 83:
- { return DEFINED_KEYWORD;
- }
- case 143: break;
- case 29:
- { return LINE_COMMENT;
- }
- case 144: break;
- case 31:
- { return ASTERISKEQ;
- }
- case 145: break;
- case 15:
- { return OR;
- }
- case 146: break;
- case 7:
- { return INTEGER_LITERAL;
- }
- case 147: break;
- case 74:
- { return ASSERT_KEYWORD;
- }
- case 148: break;
- case 20:
- { return LBRACE;
- }
- case 149: break;
- case 67:
- { return STATE_KEYWORD;
- }
- case 150: break;
- case 11:
- { return TILDE;
- }
- case 151: break;
- case 53:
- { return ELLIPSIS;
- }
- case 152: break;
- case 33:
- { return IF_KEYWORD;
- }
- case 153: break;
- case 70:
- { return TAGOF_KEYWORD;
- }
- case 154: break;
- case 73:
- { return WHILE_KEYWORD;
- }
- case 155: break;
- case 38:
- { return NE;
- }
- case 156: break;
- case 56:
- { return CHARACTER_LITERAL;
- }
- case 157: break;
- case 66:
- { return GOTO_KEYWORD;
- }
- case 158: break;
- case 1:
- { return com.intellij.psi.TokenType.BAD_CHARACTER;
- }
- case 159: break;
- case 86:
- { return CONTINUE_KEYWORD;
- }
- case 160: break;
- case 79:
- { return RETURN_KEYWORD;
- }
- case 161: break;
- case 6:
- { return MINUS;
- }
- case 162: break;
- case 45:
- { return LE;
- }
- case 163: break;
- case 19:
- { return RPAREN;
- }
- case 164: break;
- case 12:
- { return QUEST;
- }
- case 165: break;
- case 17:
- { return PERC;
- }
- case 166: break;
- case 77:
- { return SIZEOF_KEYWORD;
- }
- case 167: break;
- case 48:
- { return ANDAND;
- }
- case 168: break;
- case 64:
- { return DECL_KEYWORD;
- }
- case 169: break;
- case 54:
- { return HEX_LITERAL;
- }
- case 170: break;
- case 58:
- { return GTGTEQ;
- }
- case 171: break;
- case 49:
- { return PREPROCESSOR_COMMENT;
- }
- case 172: break;
- default:
- if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {
- zzAtEOF = true;
- return null;
- }
- else {
- zzScanError(ZZ_NO_MATCH);
- }
- }
- }
- }
-
-
-}
diff --git a/src/org/idea_sp/psi/SourcePawnElementType.java b/src/org/idea_sp/psi/SourcePawnElementType.java
deleted file mode 100644
index ee18563..0000000
--- a/src/org/idea_sp/psi/SourcePawnElementType.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package org.idea_sp.psi;
-
-import com.intellij.psi.tree.IElementType;
-import org.idea_sp.SourcePawnLanguage;
-import org.jetbrains.annotations.NonNls;
-import org.jetbrains.annotations.NotNull;
-
-public class SourcePawnElementType extends IElementType {
- public SourcePawnElementType(@NotNull @NonNls String debugName) {
- super(debugName, SourcePawnLanguage.INSTANCE);
- }
-}
diff --git a/src/org/idea_sp/psi/SourcePawnFile.java b/src/org/idea_sp/psi/SourcePawnFile.java
deleted file mode 100644
index 705be6e..0000000
--- a/src/org/idea_sp/psi/SourcePawnFile.java
+++ /dev/null
@@ -1,32 +0,0 @@
-package org.idea_sp.psi;
-
-import com.intellij.extapi.psi.PsiFileBase;
-import com.intellij.openapi.fileTypes.FileType;
-import com.intellij.psi.FileViewProvider;
-import org.idea_sp.SourcePawnFileType;
-import org.idea_sp.SourcePawnLanguage;
-import org.jetbrains.annotations.NotNull;
-
-import javax.swing.*;
-
-public class SourcePawnFile extends PsiFileBase {
- public SourcePawnFile(@NotNull FileViewProvider viewProvider) {
- super(viewProvider, SourcePawnLanguage.INSTANCE);
- }
-
- @NotNull
- @Override
- public FileType getFileType() {
- return SourcePawnFileType.INSTANCE;
- }
-
- @Override
- public String toString() {
- return "SourcePawn File";
- }
-
- @Override
- public Icon getIcon(int flags) {
- return super.getIcon(flags);
- }
-}
diff --git a/src/org/idea_sp/psi/SourcePawnTokenType.java b/src/org/idea_sp/psi/SourcePawnTokenType.java
deleted file mode 100644
index 67ccb9d..0000000
--- a/src/org/idea_sp/psi/SourcePawnTokenType.java
+++ /dev/null
@@ -1,17 +0,0 @@
-package org.idea_sp.psi;
-
-import com.intellij.psi.tree.IElementType;
-import org.idea_sp.SourcePawnLanguage;
-import org.jetbrains.annotations.NonNls;
-import org.jetbrains.annotations.NotNull;
-
-public class SourcePawnTokenType extends IElementType {
- public SourcePawnTokenType(@NotNull @NonNls String debugName) {
- super(debugName, SourcePawnLanguage.INSTANCE);
- }
-
- @Override
- public String toString() {
- return "SourcePawnTokenType." + super.toString();
- }
-}
diff --git a/src/tf/ngs/sp/lang/SourcePawnColorSettingsPage.kt b/src/tf/ngs/sp/lang/SourcePawnColorSettingsPage.kt
new file mode 100644
index 0000000..ac076eb
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnColorSettingsPage.kt
@@ -0,0 +1,30 @@
+package tf.ngs.sp.lang
+
+import com.intellij.openapi.editor.colors.TextAttributesKey
+import com.intellij.openapi.options.colors.AttributesDescriptor
+import com.intellij.openapi.options.colors.ColorDescriptor
+import com.intellij.openapi.options.colors.ColorSettingsPage
+
+class SourcePawnColorSettingsPage : ColorSettingsPage {
+
+ override fun getIcon() = SourcePawnIcons.FILE
+
+ override fun getHighlighter() = SourcePawnSyntaxHighlighter()
+
+ override fun getDemoText() =
+ "// Here's a comment!\n" +
+ "static a = 4;\n" +
+ "public static const char s[] = \"test\";"
+
+ override fun getAdditionalHighlightingTagToDescriptorMap(): Map? = null
+
+ override fun getAttributeDescriptors() = DESCRIPTORS
+
+ override fun getColorDescriptors(): Array = ColorDescriptor.EMPTY_ARRAY
+
+ override fun getDisplayName() = "SourcePawn"
+
+ companion object {
+ private val DESCRIPTORS = arrayOf(AttributesDescriptor("Operator", SourcePawnSyntaxHighlighter.OPERATOR), AttributesDescriptor("Literal", SourcePawnSyntaxHighlighter.LITERAL), AttributesDescriptor("Reserved", SourcePawnSyntaxHighlighter.RESERVED), AttributesDescriptor("Comment", SourcePawnSyntaxHighlighter.COMMENT), AttributesDescriptor("Identifier", SourcePawnSyntaxHighlighter.IDENTIFIER))
+ }
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnElementType.kt b/src/tf/ngs/sp/lang/SourcePawnElementType.kt
new file mode 100644
index 0000000..98cf4e2
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnElementType.kt
@@ -0,0 +1,6 @@
+package tf.ngs.sp.lang
+
+import com.intellij.psi.tree.IElementType
+import org.jetbrains.annotations.NonNls
+
+class SourcePawnElementType internal constructor(@NonNls debugName: String) : IElementType(debugName, SourcePawnLanguage.INSTANCE)
diff --git a/src/tf/ngs/sp/lang/SourcePawnFileType.kt b/src/tf/ngs/sp/lang/SourcePawnFileType.kt
new file mode 100644
index 0000000..89fc58b
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnFileType.kt
@@ -0,0 +1,10 @@
+package tf.ngs.sp.lang
+
+import com.intellij.openapi.fileTypes.LanguageFileType
+
+object SourcePawnFileType : LanguageFileType(SourcePawnLanguage.INSTANCE) {
+ override fun getName() = "SourcePawn file"
+ override fun getDescription() = "SourcePawn language file"
+ override fun getDefaultExtension() = "sp"
+ override fun getIcon() = SourcePawnIcons.FILE
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnFileTypeFactory.kt b/src/tf/ngs/sp/lang/SourcePawnFileTypeFactory.kt
new file mode 100644
index 0000000..ea7decb
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnFileTypeFactory.kt
@@ -0,0 +1,11 @@
+package tf.ngs.sp.lang
+
+import com.intellij.openapi.fileTypes.*
+import tf.ngs.sp.lang.SourcePawnFileType
+
+class SourcePawnFileTypeFactory : FileTypeFactory() {
+ override fun createFileTypes(fileTypeConsumer: FileTypeConsumer) {
+ fileTypeConsumer.consume(SourcePawnFileType, "inc")
+ fileTypeConsumer.consume(SourcePawnFileType, "sp")
+ }
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnIcons.kt b/src/tf/ngs/sp/lang/SourcePawnIcons.kt
new file mode 100644
index 0000000..180b6c2
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnIcons.kt
@@ -0,0 +1,7 @@
+package tf.ngs.sp.lang
+
+import com.intellij.openapi.util.IconLoader
+
+object SourcePawnIcons {
+ val FILE = IconLoader.getIcon("/icons/hl2.png")
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnLanguage.java b/src/tf/ngs/sp/lang/SourcePawnLanguage.java
new file mode 100644
index 0000000..925ab8a
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnLanguage.java
@@ -0,0 +1,20 @@
+package tf.ngs.sp.lang;
+
+import com.intellij.lang.Language;
+import org.jetbrains.annotations.Contract;
+import org.jetbrains.annotations.NotNull;
+
+public class SourcePawnLanguage extends Language {
+ public static final @NotNull
+ SourcePawnLanguage INSTANCE = new SourcePawnLanguage();
+
+ private SourcePawnLanguage() {
+ super("SourcePawn");
+ }
+
+ @Override
+ @Contract(pure = true)
+ public boolean isCaseSensitive() {
+ return false;
+ }
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnLexerAdapter.kt b/src/tf/ngs/sp/lang/SourcePawnLexerAdapter.kt
new file mode 100644
index 0000000..915a65a
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnLexerAdapter.kt
@@ -0,0 +1,5 @@
+package tf.ngs.sp.lang
+
+import com.intellij.lexer.FlexAdapter
+
+class SourcePawnLexerAdapter : FlexAdapter(SourcePawnLexer(null))
diff --git a/src/tf/ngs/sp/lang/SourcePawnParserDefinition.kt b/src/tf/ngs/sp/lang/SourcePawnParserDefinition.kt
new file mode 100644
index 0000000..3f8c910
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnParserDefinition.kt
@@ -0,0 +1,41 @@
+package tf.ngs.sp.lang
+
+import com.intellij.lang.ASTNode
+import com.intellij.lang.ParserDefinition
+import com.intellij.lang.PsiParser
+import com.intellij.lexer.FlexAdapter
+import com.intellij.openapi.project.Project
+import com.intellij.psi.FileViewProvider
+import com.intellij.psi.PsiElement
+import com.intellij.psi.TokenType
+import com.intellij.psi.tree.IFileElementType
+import com.intellij.psi.tree.TokenSet
+import tf.ngs.sp.lang.psi.SourcePawnFile
+import tf.ngs.sp.lang.psi.SourcePawnTypes
+
+class SourcePawnParserDefinition : ParserDefinition {
+
+ override fun createLexer(project: Project) = FlexAdapter(SourcePawnLexer(null))
+
+ override fun getWhitespaceTokens() = WHITE_SPACES
+ override fun getCommentTokens() = COMMENTS
+ override fun getStringLiteralElements() = STRING_LITERALS
+
+ override fun createParser(project: Project): PsiParser = SourcePawnParser()
+
+ override fun getFileNodeType() = FILE
+
+ override fun createFile(viewProvider: FileViewProvider) = SourcePawnFile(viewProvider)
+
+ override fun spaceExistenceTypeBetweenTokens(left: ASTNode, right: ASTNode) = ParserDefinition.SpaceRequirements.MAY
+
+ override fun createElement(node: ASTNode): PsiElement = SourcePawnTypes.Factory.createElement(node)
+
+ companion object {
+ private val WHITE_SPACES = TokenSet.create(TokenType.WHITE_SPACE)
+ private val COMMENTS = TokenSet.create(SourcePawnTypes.LINE_COMMENT, SourcePawnTypes.BLOCK_COMMENT, SourcePawnTypes.PREPROCESSOR_COMMENT)
+ private val STRING_LITERALS = TokenSet.create(SourcePawnTypes.STRING_LITERAL, SourcePawnTypes.CHARACTER_LITERAL)
+
+ private val FILE = IFileElementType(SourcePawnLanguage.INSTANCE)
+ }
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnSyntaxHighlighter.kt b/src/tf/ngs/sp/lang/SourcePawnSyntaxHighlighter.kt
new file mode 100644
index 0000000..9140b82
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnSyntaxHighlighter.kt
@@ -0,0 +1,65 @@
+package tf.ngs.sp.lang
+
+import com.intellij.lexer.FlexAdapter
+import com.intellij.lexer.Lexer
+import com.intellij.openapi.editor.DefaultLanguageHighlighterColors
+import com.intellij.openapi.editor.colors.TextAttributesKey
+import com.intellij.openapi.fileTypes.SyntaxHighlighterBase
+import com.intellij.psi.tree.IElementType
+
+import java.util.HashMap
+
+import com.intellij.openapi.editor.colors.TextAttributesKey.createTextAttributesKey
+import tf.ngs.sp.lang.SourcePawnTokenTypeSets.Companion.COMMENTS
+import tf.ngs.sp.lang.SourcePawnTokenTypeSets.Companion.IDENTIFIERS
+import tf.ngs.sp.lang.SourcePawnTokenTypeSets.Companion.KEYWORDS
+import tf.ngs.sp.lang.SourcePawnTokenTypeSets.Companion.NUMBERS
+import tf.ngs.sp.lang.SourcePawnTokenTypeSets.Companion.OPERATORS
+import tf.ngs.sp.lang.SourcePawnTokenTypeSets.Companion.PARENTHESES
+import tf.ngs.sp.lang.psi.SourcePawnTypes
+
+class SourcePawnSyntaxHighlighter : SyntaxHighlighterBase() {
+
+
+ override fun getHighlightingLexer(): Lexer {
+ return FlexAdapter(SourcePawnLexer(null))
+ }
+
+ override fun getTokenHighlights(tokenType: IElementType): Array {
+ // I'm not sure what tokenType is supposed to be, because it doesn't
+ // seem to match STORAGE_CLASS or LITERAL
+
+ return pack(ATTRIBUTES[tokenType])
+ }
+
+ companion object {
+ internal val OPERATOR = createTextAttributesKey("SOURCE_PAWN_ASSIGN", DefaultLanguageHighlighterColors.OPERATION_SIGN)
+ internal val LITERAL = createTextAttributesKey("SOURCE_PAWN_CONSTANT", DefaultLanguageHighlighterColors.CONSTANT)
+ internal val RESERVED = createTextAttributesKey("SOURCE_PAWN_RESERVED", DefaultLanguageHighlighterColors.KEYWORD)
+ internal val COMMENT = createTextAttributesKey("SOURCE_PAWN_COMMENT", DefaultLanguageHighlighterColors.LINE_COMMENT)
+ internal val IDENTIFIER = createTextAttributesKey("SOURCE_PAWN_IDENTIFIER", DefaultLanguageHighlighterColors.IDENTIFIER)
+
+ private val ATTRIBUTES = HashMap()
+
+ init {
+ fillMap(ATTRIBUTES, NUMBERS, DefaultLanguageHighlighterColors.NUMBER)
+ fillMap(ATTRIBUTES, KEYWORDS, RESERVED)
+ fillMap(ATTRIBUTES, COMMENTS, COMMENT)
+ fillMap(ATTRIBUTES, OPERATORS, OPERATOR)
+ fillMap(ATTRIBUTES, IDENTIFIERS, IDENTIFIER)
+ fillMap(ATTRIBUTES, PARENTHESES, DefaultLanguageHighlighterColors.PARENTHESES)
+
+ ATTRIBUTES[SourcePawnTypes.STRING_LITERAL] = DefaultLanguageHighlighterColors.STRING
+ ATTRIBUTES[SourcePawnTypes.SEMICOLON] = DefaultLanguageHighlighterColors.SEMICOLON
+ ATTRIBUTES[SourcePawnTypes.BLOCK_COMMENT] = DefaultLanguageHighlighterColors.BLOCK_COMMENT
+ ATTRIBUTES[SourcePawnTypes.LINE_COMMENT] = DefaultLanguageHighlighterColors.LINE_COMMENT
+ ATTRIBUTES[SourcePawnTypes.COMMA] = DefaultLanguageHighlighterColors.COMMA;
+ ATTRIBUTES[SourcePawnTypes.DOT] = DefaultLanguageHighlighterColors.DOT;
+ ATTRIBUTES[SourcePawnTypes.GLOBAL_VAR_NAME] = DefaultLanguageHighlighterColors.GLOBAL_VARIABLE
+ ATTRIBUTES[SourcePawnTypes.FUNCTION_NAME] = DefaultLanguageHighlighterColors.FUNCTION_DECLARATION
+ ATTRIBUTES[SourcePawnTypes.CALL_EXPR_R] = DefaultLanguageHighlighterColors.FUNCTION_CALL
+ ATTRIBUTES[SourcePawnTypes.FUNCTION_PARAMETER] = DefaultLanguageHighlighterColors.PARAMETER
+ ATTRIBUTES[SourcePawnTypes.METHODMAP_NAME] = DefaultLanguageHighlighterColors.CLASS_NAME
+ }
+ }
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnSyntaxHighlighterFactory.kt b/src/tf/ngs/sp/lang/SourcePawnSyntaxHighlighterFactory.kt
new file mode 100644
index 0000000..46d3d9b
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnSyntaxHighlighterFactory.kt
@@ -0,0 +1,11 @@
+package tf.ngs.sp.lang
+
+import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory
+import com.intellij.openapi.project.Project
+import com.intellij.openapi.vfs.VirtualFile
+import tf.ngs.sp.lang.SourcePawnSyntaxHighlighter
+
+
+class SourcePawnSyntaxHighlighterFactory : SyntaxHighlighterFactory() {
+ override fun getSyntaxHighlighter(project: Project?, virtualFile: VirtualFile?) = SourcePawnSyntaxHighlighter()
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnTokenType.kt b/src/tf/ngs/sp/lang/SourcePawnTokenType.kt
new file mode 100644
index 0000000..1ae3d14
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnTokenType.kt
@@ -0,0 +1,9 @@
+package tf.ngs.sp.lang
+
+import com.intellij.psi.tree.IElementType
+import tf.ngs.sp.lang.SourcePawnLanguage
+import org.jetbrains.annotations.NonNls
+
+class SourcePawnTokenType constructor(@NonNls debugName: String) : IElementType(debugName, SourcePawnLanguage.INSTANCE) {
+ override fun toString() = "SourcePawnTokenType." + super.toString()
+}
diff --git a/src/tf/ngs/sp/lang/SourcePawnTokenTypeSets.kt b/src/tf/ngs/sp/lang/SourcePawnTokenTypeSets.kt
new file mode 100644
index 0000000..2e63aed
--- /dev/null
+++ b/src/tf/ngs/sp/lang/SourcePawnTokenTypeSets.kt
@@ -0,0 +1,94 @@
+package tf.ngs.sp.lang
+
+import com.intellij.psi.tree.TokenSet
+import tf.ngs.sp.lang.psi.SourcePawnTypes.*
+
+interface SourcePawnTokenTypeSets {
+ companion object {
+ // Literal types without bool keywords
+ val NUMBERS = TokenSet.create(
+ INTEGER_LITERAL,
+ HEX_LITERAL,
+ FLOAT_LITERAL
+ )
+
+ // Operator types
+ val OPERATORS = TokenSet.create(
+ EQ,
+ EQEQ,
+ NE,
+ EXCL,
+ PLUS,
+ MINUS,
+ PLUSEQ,
+ MINUSEQ,
+ DIV,
+ DIVEQ,
+ LT,
+ LE,
+ LTLT,
+ LTLTEQ,
+ GT,
+ GE,
+ GTGT,
+ GTGTEQ
+ )
+
+ // comment types
+ val COMMENTS = TokenSet.create(
+ LINE_COMMENT,
+ BLOCK_COMMENT,
+ PREPROCESSOR_COMMENT
+ )
+
+ // keywords
+ val KEYWORDS = TokenSet.create(
+ ASSERT_KEYWORD,
+ BREAK_KEYWORD,
+ CASE_KEYWORD,
+ CONTINUE_KEYWORD,
+ DEFAULT_KEYWORD,
+ DO_KEYWORD,
+ ELSE_KEYWORD,
+ EXIT_KEYWORD,
+ FOR_KEYWORD,
+ GOTO_KEYWORD,
+ IF_KEYWORD,
+ RETURN_KEYWORD,
+ SLEEP_KEYWORD,
+ STATE_KEYWORD,
+ SWITCH_KEYWORD,
+ WHILE_KEYWORD,
+ DEFINED_KEYWORD,
+ STATE_KEYWORD,
+ TAGOF_KEYWORD,
+ CONST_KEYWORD,
+ FORWARD_KEYWORD,
+ NATIVE_KEYWORD,
+ NEW_KEYWORD,
+ OPERATOR_KEYWORD,
+ PUBLIC_KEYWORD,
+ STATIC_KEYWORD,
+ STOCK_KEYWORD,
+ DECL_KEYWORD,
+ NEW_KEYWORD,
+ PUBLIC_KEYWORD,
+ BOOL_KEYWORD,
+ INT_KEYWORD,
+ CHAR_KEYWORD,
+ VOID_KEYWORD,
+ DELETE_KEYWORD,
+ FUNCENUM_KEYWORD,
+ FUNCTAG_KEYWORD,
+ FLOAT_KEYWORD,
+ BOOL_LITERAL
+ )
+
+ val PARENTHESES = TokenSet.create(
+ LPAREN,
+ RPAREN
+ )
+
+ val IDENTIFIERS = TokenSet.create(SYMBOL)
+ }
+}
diff --git a/src/tf/ngs/sp/lang/psi/SourcePawnFile.kt b/src/tf/ngs/sp/lang/psi/SourcePawnFile.kt
new file mode 100644
index 0000000..92dd8dd
--- /dev/null
+++ b/src/tf/ngs/sp/lang/psi/SourcePawnFile.kt
@@ -0,0 +1,11 @@
+package tf.ngs.sp.lang.psi
+
+import com.intellij.extapi.psi.PsiFileBase
+import com.intellij.psi.FileViewProvider
+import tf.ngs.sp.lang.SourcePawnFileType
+import tf.ngs.sp.lang.SourcePawnLanguage
+
+class SourcePawnFile(viewProvider: FileViewProvider) : PsiFileBase(viewProvider, SourcePawnLanguage.INSTANCE) {
+ override fun getFileType() = SourcePawnFileType
+ override fun toString() = "SourcePawn File"
+}
diff --git a/src/tf/ngs/sp/lang/run/SourcePawnConfigurationFactory.kt b/src/tf/ngs/sp/lang/run/SourcePawnConfigurationFactory.kt
new file mode 100644
index 0000000..f0c833c
--- /dev/null
+++ b/src/tf/ngs/sp/lang/run/SourcePawnConfigurationFactory.kt
@@ -0,0 +1,18 @@
+package tf.ngs.sp.lang.run
+
+import com.intellij.execution.configurations.ConfigurationFactory
+import com.intellij.execution.configurations.ConfigurationType
+import com.intellij.execution.configurations.RunConfiguration
+import com.intellij.openapi.project.Project
+
+class SourcePawnConfigurationFactory(type: ConfigurationType) : ConfigurationFactory(type) {
+ companion object {
+ private const val FACTORY_NAME = "SourcePawn configuration factory"
+ }
+
+ override fun createTemplateConfiguration(project: Project): RunConfiguration {
+ return SourcePawnRunConfiguration(project, this, "Demo")
+ }
+
+ override fun getName() = FACTORY_NAME
+}
\ No newline at end of file
diff --git a/src/tf/ngs/sp/lang/run/SourcePawnRunConfiguration.kt b/src/tf/ngs/sp/lang/run/SourcePawnRunConfiguration.kt
new file mode 100644
index 0000000..80142a9
--- /dev/null
+++ b/src/tf/ngs/sp/lang/run/SourcePawnRunConfiguration.kt
@@ -0,0 +1,22 @@
+package tf.ngs.sp.lang.run
+
+import com.intellij.execution.Executor
+import com.intellij.execution.configurations.*
+import com.intellij.execution.runners.ExecutionEnvironment
+import com.intellij.openapi.options.SettingsEditor
+import com.intellij.openapi.project.Project
+
+
+class SourcePawnRunConfiguration internal constructor(project: Project, factory: ConfigurationFactory?, name: String?) : RunConfigurationBase(project, factory, name) {
+ override fun getConfigurationEditor(): SettingsEditor {
+ return SourcePawnSettingsEditor()
+ }
+
+ override fun getState(executor: Executor, environment: ExecutionEnvironment): RunProfileState? {
+ return null
+ }
+
+ override fun checkConfiguration() {
+ // Left empty intentionally
+ }
+}
\ No newline at end of file
diff --git a/src/tf/ngs/sp/lang/run/SourcePawnRunConfigurationType.kt b/src/tf/ngs/sp/lang/run/SourcePawnRunConfigurationType.kt
new file mode 100644
index 0000000..6c7343f
--- /dev/null
+++ b/src/tf/ngs/sp/lang/run/SourcePawnRunConfigurationType.kt
@@ -0,0 +1,19 @@
+package tf.ngs.sp.lang.run
+
+import com.intellij.execution.configurations.ConfigurationFactory
+import com.intellij.execution.configurations.ConfigurationType
+import tf.ngs.sp.lang.SourcePawnIcons
+
+class SourcePawnRunConfigurationType : ConfigurationType {
+ override fun getDisplayName() = "SourcePawn Build"
+
+ override fun getConfigurationTypeDescription() = "SourcePawn Build"
+
+ override fun getIcon() = SourcePawnIcons.FILE
+
+ override fun getId() = "SOURCEPAWN_BUILD_CONFIGURATION_TYPE"
+
+ override fun getConfigurationFactories(): Array {
+ return arrayOf(SourcePawnConfigurationFactory(this))
+ }
+}
\ No newline at end of file
diff --git a/src/tf/ngs/sp/lang/run/SourcePawnSettingsEditor.kt b/src/tf/ngs/sp/lang/run/SourcePawnSettingsEditor.kt
new file mode 100644
index 0000000..bd8a1ac
--- /dev/null
+++ b/src/tf/ngs/sp/lang/run/SourcePawnSettingsEditor.kt
@@ -0,0 +1,31 @@
+package tf.ngs.sp.lang.run
+
+import com.intellij.openapi.options.SettingsEditor
+import com.intellij.openapi.ui.ComponentWithBrowseButton
+import com.intellij.openapi.ui.LabeledComponent
+import com.intellij.openapi.ui.TextFieldWithBrowseButton
+import javax.swing.JComponent
+import javax.swing.JPanel
+
+
+class SourcePawnSettingsEditor : SettingsEditor() {
+ private val myPanel: JPanel? = null
+ private var myMainClass: LabeledComponent>? = null
+
+ override fun resetEditorFrom(sourcePawnRunConfiguration: SourcePawnRunConfiguration) {
+ // left empty intentionally
+ }
+
+ override fun applyEditorTo(sourcePawnRunConfiguration: SourcePawnRunConfiguration) {
+ // left empty intentionally
+ }
+
+ override fun createEditor(): JComponent {
+ return myPanel!!
+ }
+
+ private fun createUIComponents() {
+ myMainClass = LabeledComponent()
+ myMainClass!!.component = TextFieldWithBrowseButton()
+ }
+}
\ No newline at end of file