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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 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