diff --git a/.idea/libraries/kodein_di_jvm.xml b/.idea/libraries/kodein_di_jvm.xml deleted file mode 100644 index 11b5c2e7ad8d..000000000000 --- a/.idea/libraries/kodein_di_jvm.xml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/libraries/qodana_sarif.xml b/.idea/libraries/qodana_sarif.xml deleted file mode 100644 index b89e0a50a6fe..000000000000 --- a/.idea/libraries/qodana_sarif.xml +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - - - - - \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml index 26a779390a1f..966a9bcf3d89 100644 --- a/.idea/modules.xml +++ b/.idea/modules.xml @@ -774,6 +774,7 @@ + @@ -1032,10 +1033,6 @@ - - - - diff --git a/build/src/org/jetbrains/intellij/build/IdeaCommunityProperties.kt b/build/src/org/jetbrains/intellij/build/IdeaCommunityProperties.kt index 221ed7844682..323a0c58d9d3 100644 --- a/build/src/org/jetbrains/intellij/build/IdeaCommunityProperties.kt +++ b/build/src/org/jetbrains/intellij/build/IdeaCommunityProperties.kt @@ -26,11 +26,7 @@ open class IdeaCommunityProperties(private val communityHomeDir: Path) : BaseIde "intellij.platform.debugger.testFramework", "intellij.platform.vcs.testFramework", "intellij.platform.externalSystem.testFramework", - "intellij.maven.testFramework", - "intellij.tools.ide.starter", - "intellij.tools.ide.metricsCollector", - "intellij.tools.ide.starter.junit4", - "intellij.tools.ide.starter.junit5" + "intellij.maven.testFramework" ) } diff --git a/intellij.idea.community.main.iml b/intellij.idea.community.main.iml index 9e4f3ba703fe..e41123f56441 100644 --- a/intellij.idea.community.main.iml +++ b/intellij.idea.community.main.iml @@ -198,5 +198,6 @@ + \ No newline at end of file diff --git a/platform/build-scripts/src/org/jetbrains/intellij/build/CommunityRepositoryModules.kt b/platform/build-scripts/src/org/jetbrains/intellij/build/CommunityRepositoryModules.kt index da4ee90dc572..f1da062dc15c 100644 --- a/platform/build-scripts/src/org/jetbrains/intellij/build/CommunityRepositoryModules.kt +++ b/platform/build-scripts/src/org/jetbrains/intellij/build/CommunityRepositoryModules.kt @@ -70,6 +70,7 @@ object CommunityRepositoryModules { spec.withModule("intellij.xml.langInjection", "IntelliLang.jar") spec.withModule("intellij.java.langInjection.jps") }, + plugin(listOf("intellij.performanceTesting")), plugin("intellij.tasks.core") { spec -> spec.directoryName = "tasks" spec.withModule("intellij.tasks") diff --git a/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt b/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt index 312ad17108a0..cb4a683e6590 100644 --- a/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt +++ b/platform/platform-impl/src/com/intellij/ide/startup/impl/StartupManagerImpl.kt @@ -192,6 +192,7 @@ open class StartupManagerImpl(private val project: Project) : StartupManagerEx() val pluginId = adapter.pluginDescriptor.pluginId if (!isCorePlugin(adapter.pluginDescriptor) && pluginId.idString != "com.jetbrains.performancePlugin" && pluginId.idString != "com.intellij.clion-makefile" + && pluginId.idString != "com.jetbrains.performancePlugin.yourkit" && pluginId.idString != "com.intellij.clion-swift" && pluginId.idString != "com.intellij.appcode" && pluginId.idString != "com.intellij.clion-compdb" diff --git a/plugins/performanceTesting/gen/com/jetbrains/performancePlugin/lang/lexer/IJPerfLexer.java b/plugins/performanceTesting/gen/com/jetbrains/performancePlugin/lang/lexer/IJPerfLexer.java new file mode 100644 index 000000000000..50d7d4baf509 --- /dev/null +++ b/plugins/performanceTesting/gen/com/jetbrains/performancePlugin/lang/lexer/IJPerfLexer.java @@ -0,0 +1,703 @@ +/* The following code was generated by JFlex 1.7.0 tweaked for IntelliJ platform */ + +package com.jetbrains.performancePlugin.lang.lexer; + +import com.jetbrains.performancePlugin.lang.psi.IJPerfElementTypes; +import com.intellij.psi.tree.IElementType; +import com.intellij.psi.TokenType; +import com.intellij.lexer.FlexLexer; + + +/** + * This class is a scanner generated by + * JFlex 1.7.0 + * from the specification file IJPerf.flex + */ +class IJPerfLexer implements FlexLexer { + + /** This character denotes the end of file */ + public static final int YYEOF = -1; + + /** initial size of the lookahead buffer */ + private static final int ZZ_BUFFERSIZE = 16384; + + /** lexical states */ + public static final int YYINITIAL = 0; + public static final int WAITING_INPUT = 2; + public static final int WAITING_TEXT = 4; + public static final int WAITING_LAST_OPTION = 6; + + /** + * 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, 1, 1, 2, 2, 3, 3 + }; + + /** + * Translates characters to character classes + * Chosen bits are [12, 6, 3] + * Total runtime size is 15696 bytes + */ + public static int ZZ_CMAP(int ch) { + return ZZ_CMAP_A[(ZZ_CMAP_Y[(ZZ_CMAP_Z[ch>>9]<<6)|((ch>>3)&0x3f)]<<3)|(ch&0x7)]; + } + + /* The ZZ_CMAP_Z table has 2176 entries */ + static final char ZZ_CMAP_Z[] = zzUnpackCMap( + "\1\0\1\1\1\2\1\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\5\21\1\22\1\23\1\24\1\21\14\25\1\26\50\25\1\27\2\25\1\30\1\31\1\32\1\33"+ + "\25\25\1\34\20\21\1\35\1\36\1\37\1\40\1\41\1\42\1\43\1\44\1\45\1\46\1\47\1"+ + "\21\1\50\1\51\1\52\1\53\1\54\1\55\1\56\1\21\1\25\1\57\1\60\5\21\2\25\1\61"+ + "\7\21\1\25\1\62\20\21\1\25\1\63\1\21\1\64\13\25\1\65\1\25\1\66\22\21\1\67"+ + "\1\70\4\21\1\71\11\21\1\72\1\73\1\74\1\75\1\21\1\76\2\21\1\77\3\21\1\100\2"+ + "\21\1\101\10\21\123\25\1\102\7\25\1\103\1\104\12\25\1\105\15\25\1\106\6\21"+ + "\1\25\1\107\u0582\21\1\110\u017f\21"); + + /* The ZZ_CMAP_Y table has 4672 entries */ + static final char ZZ_CMAP_Y[] = zzUnpackCMap( + "\1\0\1\1\1\0\1\2\1\3\1\4\1\5\1\6\1\7\2\0\1\10\1\7\2\0\1\11\1\12\3\0\1\13\1"+ + "\14\1\15\1\16\2\0\1\17\3\0\1\17\71\0\1\20\1\0\1\21\1\22\1\23\1\24\2\22\16"+ + "\0\1\25\1\26\1\27\1\30\2\0\1\31\11\0\1\32\21\0\1\31\1\33\24\0\1\7\3\0\1\17"+ + "\1\34\1\7\4\0\1\35\1\7\4\0\1\32\1\36\1\22\3\0\2\37\1\22\1\40\1\41\1\0\1\42"+ + "\10\0\1\5\1\43\14\0\1\44\1\32\1\0\1\45\1\5\1\46\1\22\1\35\7\0\1\47\14\0\1"+ + "\21\1\22\1\5\1\50\4\0\1\40\1\16\5\0\1\40\2\22\3\0\1\2\1\0\1\37\6\22\2\0\1"+ + "\25\1\40\2\22\1\51\21\0\1\52\1\5\1\7\1\0\1\44\1\53\1\54\2\0\1\45\1\55\1\56"+ + "\1\53\1\57\1\35\1\60\1\52\1\5\1\2\1\61\1\62\1\63\1\54\2\0\1\45\1\64\1\65\1"+ + "\63\1\66\1\34\1\67\1\70\1\5\1\40\1\22\1\62\1\32\1\31\2\0\1\45\1\71\1\56\1"+ + "\32\1\72\1\73\1\22\1\52\1\5\1\34\1\7\1\62\1\53\1\54\2\0\1\45\1\71\1\56\1\53"+ + "\1\66\1\74\1\60\1\52\1\5\1\34\1\22\1\75\1\76\1\77\1\100\1\61\1\76\1\0\1\20"+ + "\1\76\1\77\1\101\1\22\1\70\1\5\1\22\1\34\1\44\1\25\1\45\2\0\1\45\1\0\1\102"+ + "\1\25\1\77\1\103\1\37\1\52\1\5\2\22\1\44\1\25\1\45\2\0\1\45\1\44\1\56\1\25"+ + "\1\77\1\103\1\27\1\52\1\5\1\104\1\22\1\44\1\25\1\45\5\0\1\25\1\105\1\51\1"+ + "\35\1\52\1\5\1\22\1\33\1\75\1\0\1\17\1\33\2\0\1\31\1\106\1\17\1\107\1\110"+ + "\1\0\1\70\1\5\1\111\1\22\1\7\6\0\1\63\1\0\1\17\1\5\1\112\4\22\1\113\1\114"+ + "\1\51\1\7\1\115\1\75\1\0\1\72\1\110\1\40\1\5\1\116\4\22\1\73\2\22\1\21\1\5"+ + "\1\112\1\117\1\120\1\0\1\7\3\0\1\23\1\7\1\0\1\25\2\0\1\7\3\0\1\23\1\27\7\22"+ + "\10\0\1\5\1\112\10\0\1\5\1\121\4\0\1\32\1\15\5\0\1\122\51\0\1\77\1\17\1\77"+ + "\5\0\1\77\4\0\1\77\1\17\1\77\1\0\1\17\7\0\1\77\10\0\1\47\4\22\2\0\2\22\12"+ + "\0\2\40\1\7\114\0\1\53\2\0\1\7\2\0\1\37\11\0\1\76\1\0\1\73\1\0\1\25\1\23\1"+ + "\22\2\0\1\23\1\22\2\0\1\2\1\22\1\0\1\25\1\123\1\22\12\0\1\124\1\125\1\5\1"+ + "\112\3\22\1\126\1\5\1\112\13\0\1\22\5\0\1\37\10\0\1\40\1\22\3\0\1\17\1\0\1"+ + "\2\1\0\1\2\1\70\1\5\3\0\1\40\1\23\1\22\5\0\1\2\3\0\1\21\1\5\1\112\4\22\3\0"+ + "\1\2\7\0\1\17\3\0\1\53\1\5\1\112\1\5\1\112\1\35\1\22\1\0\1\40\10\22\11\0\1"+ + "\2\1\5\1\112\1\22\1\127\1\2\1\22\6\0\1\5\1\50\6\0\1\2\1\22\7\0\1\22\1\5\1"+ + "\130\1\5\1\50\3\0\1\40\1\0\1\73\10\22\1\122\4\0\1\21\37\0\1\31\42\0\2\40\4"+ + "\0\2\40\1\0\1\131\3\0\1\40\6\0\1\25\1\110\1\132\1\23\1\133\1\2\1\0\1\23\1"+ + "\132\1\23\1\22\1\127\3\22\1\134\1\22\1\35\1\73\1\22\1\135\1\22\1\25\1\0\1"+ + "\34\1\35\2\22\1\0\1\23\4\0\2\22\1\0\1\23\1\136\1\0\1\73\1\22\1\107\1\33\1"+ + "\106\1\137\1\24\1\140\1\0\1\56\1\141\1\142\2\22\5\0\1\73\116\22\5\0\1\17\5"+ + "\0\1\17\20\0\1\23\1\127\1\2\1\22\4\0\1\32\1\15\7\0\1\35\1\22\1\35\2\0\1\17"+ + "\1\22\10\17\4\0\5\22\1\35\72\22\1\141\3\22\1\7\1\0\1\137\1\23\1\7\11\0\1\17"+ + "\1\143\1\7\12\0\1\122\1\141\4\0\1\17\1\7\12\0\1\17\2\22\3\0\1\37\6\22\170"+ + "\0\1\40\11\22\75\0\1\37\2\22\21\0\1\23\10\22\5\0\1\40\41\0\1\23\2\0\1\5\1"+ + "\144\2\22\6\0\1\51\1\32\16\0\1\21\3\22\1\35\1\0\1\33\14\0\1\54\3\0\1\17\1"+ + "\0\7\22\1\35\6\0\2\22\1\73\6\0\1\2\1\22\10\0\1\40\1\22\1\5\1\112\3\0\1\145"+ + "\1\5\1\50\3\0\1\40\4\0\1\2\1\22\3\0\1\23\10\0\1\73\1\35\1\5\1\112\2\0\1\5"+ + "\1\146\6\0\1\17\1\22\1\0\1\40\1\5\1\112\2\0\1\17\1\33\10\0\1\37\2\22\1\125"+ + "\2\0\1\147\1\22\3\150\1\22\2\17\5\0\1\122\1\40\1\22\17\0\1\151\1\5\1\112\64"+ + "\0\1\2\1\22\2\0\1\17\1\127\5\0\1\2\40\22\55\0\1\40\15\0\1\21\4\22\1\17\1\22"+ + "\1\127\1\141\1\0\1\45\1\17\1\110\1\152\15\0\1\21\3\22\1\127\54\0\1\40\2\22"+ + "\10\0\1\33\6\0\5\22\1\0\1\23\2\0\2\22\2\0\1\61\2\22\1\141\3\22\1\34\1\25\20"+ + "\0\1\53\1\135\1\22\1\5\1\112\1\7\2\0\1\63\1\7\2\0\1\37\1\74\12\0\1\17\3\33"+ + "\1\153\1\154\2\22\1\155\1\0\1\44\2\0\1\17\2\0\1\156\1\0\1\40\1\0\1\40\4\22"+ + "\17\0\1\37\10\22\6\0\1\23\20\22\1\15\20\22\3\0\1\23\6\0\1\73\1\22\1\73\3\22"+ + "\4\0\1\22\1\141\3\0\1\37\5\0\1\37\3\0\1\40\4\0\1\2\1\0\1\137\5\22\23\0\1\40"+ + "\1\5\1\112\4\0\1\2\4\0\1\2\5\0\1\22\6\0\1\2\23\22\46\0\1\17\1\22\2\0\1\40"+ + "\1\22\1\0\23\22\1\40\1\45\4\0\1\32\1\157\2\0\1\40\1\22\2\0\1\17\1\22\3\0\1"+ + "\17\10\22\2\0\1\151\1\22\2\0\1\40\1\22\3\0\1\21\10\22\7\0\1\74\10\22\1\160"+ + "\1\51\1\44\1\7\2\0\1\2\1\63\4\22\3\0\1\23\3\0\1\23\4\22\1\0\1\7\2\0\1\17\3"+ + "\22\6\0\1\40\1\22\2\0\1\40\1\22\2\0\1\37\1\22\2\0\1\21\15\22\11\0\1\73\6\22"+ + "\6\0\1\37\1\22\6\0\1\37\41\22\10\0\1\17\3\22\1\70\1\5\1\22\1\35\7\0\1\161"+ + "\2\22\3\0\1\73\1\5\1\112\6\0\1\162\1\5\2\22\4\0\1\163\1\22\10\0\1\23\1\153"+ + "\1\5\1\164\4\22\2\0\1\31\4\0\1\27\10\22\1\17\1\140\1\0\1\32\1\0\1\73\7\0\1"+ + "\37\1\5\1\112\1\44\1\53\1\54\2\0\1\45\1\71\1\56\1\53\1\66\1\101\1\141\1\133"+ + "\2\23\21\22\11\0\1\37\1\5\1\112\4\22\10\0\1\32\1\22\1\5\1\112\24\22\6\0\1"+ + "\40\1\0\1\73\2\22\1\40\4\22\10\0\1\165\1\22\1\5\1\112\4\22\7\0\1\22\1\5\1"+ + "\112\6\22\3\0\1\102\1\0\1\2\1\5\1\112\54\22\10\0\1\5\1\112\1\22\1\35\40\22"+ + "\7\0\1\17\1\35\1\22\6\0\1\133\2\0\1\21\4\22\7\0\1\73\40\22\1\0\1\45\4\0\1"+ + "\17\1\0\1\73\1\22\1\5\1\112\2\22\1\33\3\0\1\33\2\0\1\7\1\17\11\22\1\17\1\31"+ + "\4\0\1\17\1\166\1\0\1\22\1\0\1\21\24\22\63\0\1\21\14\22\15\0\1\17\2\22\30"+ + "\0\1\2\27\22\5\0\1\17\72\22\10\0\1\17\67\22\7\0\1\73\3\0\1\17\1\5\1\112\14"+ + "\22\3\0\1\40\1\23\1\22\6\0\1\17\1\22\1\2\1\22\1\5\1\112\1\127\2\0\1\141\2"+ + "\0\56\22\10\0\1\23\1\22\5\0\1\17\1\22\1\35\2\0\10\22\1\21\3\22\75\0\1\23\2"+ + "\22\36\0\1\37\41\22\43\0\1\17\12\22\61\0\1\2\40\22\15\0\1\37\1\0\1\23\1\0"+ + "\1\73\1\0\1\154\1\2\127\22\1\141\1\102\2\0\1\47\1\2\3\22\1\13\22\22\1\153"+ + "\67\22\12\0\1\25\10\0\1\25\1\167\1\170\1\0\1\171\1\44\7\0\1\32\1\47\2\25\3"+ + "\0\1\172\1\110\1\33\1\45\51\0\1\40\3\0\1\45\2\0\1\122\3\0\1\122\2\0\1\25\3"+ + "\0\1\25\2\0\1\17\3\0\1\17\3\0\1\45\3\0\1\45\2\0\1\122\1\52\6\5\6\0\1\17\1"+ + "\127\5\0\1\23\1\15\1\22\1\135\2\22\1\127\1\7\1\0\52\22\1\17\2\0\1\54\1\152"+ + "\1\37\72\22\30\0\1\23\1\22\1\17\5\22\11\0\1\37\1\5\1\112\24\22\1\44\3\0\1"+ + "\113\1\7\1\122\1\173\1\107\1\174\1\113\1\131\1\113\2\122\1\67\1\0\1\31\1\0"+ + "\1\2\1\62\1\31\1\0\1\2\50\22\32\0\1\17\5\22\106\0\1\23\1\22\33\0\1\40\120"+ + "\0\1\21\1\22\146\0\1\73\3\22\3\0\1\40\74\22\1\34\3\22\14\0\20\22\36\0\2\22"); + + /* The ZZ_CMAP_A table has 1000 entries */ + static final char ZZ_CMAP_A[] = zzUnpackCMap( + "\11\14\1\4\1\2\1\1\1\5\1\3\6\14\4\0\1\4\1\0\1\12\1\0\1\14\1\6\6\0\1\10\1\17"+ + "\1\22\1\20\12\21\1\16\2\0\1\7\3\0\12\14\1\0\1\13\2\0\4\14\1\0\1\11\2\0\6\14"+ + "\1\15\2\14\2\0\4\14\4\0\1\14\2\0\1\14\7\0\1\14\4\0\1\14\5\0\7\14\1\0\2\14"+ + "\4\0\4\14\16\0\5\14\7\0\1\14\1\0\1\14\1\0\5\14\1\0\2\14\2\0\4\14\1\0\1\14"+ + "\6\0\1\14\1\0\3\14\1\0\1\14\1\0\4\14\1\0\13\14\1\0\1\14\2\0\6\14\1\0\1\14"+ + "\15\0\1\14\1\0\2\14\1\0\2\14\1\0\4\14\5\0\6\14\5\0\1\14\4\0\3\14\1\0\1\14"+ + "\3\0\2\21\4\0\6\14\1\0\4\14\1\0\6\14\2\21\3\14\2\0\4\14\2\0\3\14\2\21\6\14"+ + "\4\0\10\14\2\0\2\21\5\14\2\0\2\14\2\0\6\14\1\0\1\14\3\0\4\14\2\0\5\14\2\0"+ + "\4\14\5\0\2\14\1\0\1\14\3\0\2\14\4\0\3\14\1\0\6\14\4\0\2\14\1\0\2\14\1\0\2"+ + "\14\1\0\2\14\2\0\1\14\1\0\3\14\2\0\3\14\3\0\4\14\1\0\1\14\7\0\2\21\1\14\1"+ + "\0\2\14\1\0\5\14\1\0\3\14\2\0\1\14\15\0\2\14\2\0\2\14\1\0\6\14\3\0\3\14\1"+ + "\0\4\14\3\0\2\14\1\0\1\14\1\0\3\14\6\0\3\14\3\0\3\14\5\0\2\14\2\0\2\14\5\0"+ + "\1\14\1\0\5\14\1\0\4\14\1\0\1\14\4\0\1\14\4\0\6\14\1\0\1\14\3\0\2\14\4\0\2"+ + "\21\7\0\2\14\1\0\1\14\2\0\2\14\1\0\1\14\2\0\1\14\3\0\3\14\1\0\1\14\1\0\1\14"+ + "\2\21\2\0\4\14\5\0\1\14\1\0\1\14\1\0\1\14\4\0\2\14\2\21\4\14\2\0\3\14\1\0"+ + "\5\14\1\0\2\14\4\0\4\14\3\0\1\14\3\0\3\14\5\0\4\14\4\0\5\14\2\21\3\0\3\14"+ + "\1\0\1\14\1\0\1\14\1\0\1\14\1\0\1\14\2\0\3\14\1\0\6\14\2\0\2\14\2\1\5\14\5"+ + "\0\1\14\4\0\1\14\3\0\3\14\1\0\5\14\2\0\1\14\1\0\4\14\1\0\1\14\5\0\5\14\4\0"+ + "\1\14\2\0\2\14\2\0\3\14\2\21\2\14\7\0\1\14\1\0\1\14\2\0\2\21\5\14\3\0\5\14"+ + "\2\0\6\14\1\0\3\14\1\0\2\14\2\0\2\14\1\0\2\14\1\0\2\14\2\0\3\14\3\0\2\14\3"+ + "\0\2\14\2\0\3\14\4\0\3\14\1\0\2\14\1\0\2\14\3\0\1\14\2\0\5\14\1\0\2\14\1\0"+ + "\3\14\2\0\1\14\2\0\5\14\1\0\2\21\4\14\2\0\1\14\1\0\2\21\1\14\1\0\1\14\3\0"+ + "\1\14\3\0\1\14\5\0\1\14\1\0\2\14\1\0\1\14\2\0\1\14\2\0\2\14\2\0\4\14\1\0\4"+ + "\14\1\0\1\14\1\0\5\14\1\0\4\14\2\0\1\14\1\0\1\14\5\0\1\14\1\0\1\14\1\0\3\14"); + + /** + * Translates DFA states to action switch labels. + */ + private static final int [] ZZ_ACTION = zzUnpackAction(); + + private static final String ZZ_ACTION_PACKED_0 = + "\4\0\2\1\1\2\2\3\1\4\1\2\1\5\1\3"+ + "\1\6\1\4\1\2\1\4\1\7\2\10\1\4\1\11"+ + "\1\12\1\11\1\13\1\4\1\0\1\4\4\0\1\6"+ + "\1\4\1\0\1\4\2\2\1\14\3\0\2\4"; + + private static int [] zzUnpackAction() { + int [] result = new int[44]; + 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\23\0\46\0\71\0\114\0\137\0\162\0\205"+ + "\0\230\0\253\0\276\0\321\0\344\0\367\0\u010a\0\u011d"+ + "\0\u0130\0\u0143\0\u0156\0\46\0\u0169\0\u017c\0\230\0\230"+ + "\0\230\0\u018f\0\u01a2\0\276\0\u01b5\0\u01c8\0\u01db\0\344"+ + "\0\u01ee\0\u0201\0\u0214\0\u011d\0\u0169\0\u018f\0\u0227\0\u023a"+ + "\0\u024d\0\u0260\0\u0273\0\u0286"; + + private static int [] zzUnpackRowMap() { + int [] result = new int[44]; + 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\5\1\6\1\7\1\6\2\7\1\10\5\11\1\5"+ + "\1\6\1\11\1\5\2\11\1\5\1\12\1\13\1\7"+ + "\1\13\1\14\1\7\4\11\1\15\1\16\1\17\1\20"+ + "\1\11\1\21\1\16\1\22\1\21\1\23\1\24\1\7"+ + "\3\24\7\23\1\24\5\23\1\12\1\25\1\7\1\25"+ + "\1\26\1\7\1\11\1\27\1\30\1\31\1\15\1\16"+ + "\1\17\1\32\1\11\1\21\1\16\1\22\1\21\2\5"+ + "\1\0\1\5\6\0\1\5\1\0\2\5\1\0\1\5"+ + "\1\0\1\5\1\0\1\5\1\6\1\7\1\6\2\7"+ + "\4\0\1\5\1\0\1\5\1\6\1\0\1\5\1\0"+ + "\1\5\2\0\5\7\7\0\1\7\5\0\2\5\1\0"+ + "\1\5\2\0\1\33\5\0\2\5\1\0\1\5\2\0"+ + "\1\5\23\0\2\12\1\0\1\12\6\0\1\12\1\0"+ + "\2\12\1\0\1\12\1\0\1\12\1\0\1\12\1\34"+ + "\1\7\1\34\2\7\4\0\1\12\1\0\1\12\1\34"+ + "\1\0\1\12\1\0\1\12\2\0\3\7\1\14\1\7"+ + "\7\0\1\7\11\0\1\35\6\0\1\36\2\37\1\0"+ + "\2\35\1\37\1\35\12\0\1\40\1\16\2\41\1\0"+ + "\2\16\1\41\1\16\2\12\1\0\1\12\6\0\1\42"+ + "\1\41\2\17\1\43\1\21\1\41\1\17\1\16\1\12"+ + "\1\34\1\7\1\34\2\7\4\0\1\42\1\41\1\17"+ + "\1\44\1\43\1\21\1\41\1\17\1\16\2\12\1\0"+ + "\1\12\6\0\1\42\1\16\2\17\1\0\1\21\1\16"+ + "\1\17\1\16\12\0\1\40\3\41\1\43\1\16\1\41"+ + "\1\22\1\16\2\23\1\0\20\23\1\12\1\45\1\7"+ + "\1\45\2\7\4\0\1\12\1\0\1\12\1\45\1\0"+ + "\1\12\1\0\1\12\2\0\3\7\1\26\1\7\7\0"+ + "\1\7\5\0\1\12\1\45\1\7\1\45\2\7\4\0"+ + "\1\42\1\41\1\17\1\46\1\43\1\21\1\41\1\17"+ + "\1\16\2\5\1\0\1\5\3\0\1\47\4\0\2\5"+ + "\1\0\1\5\2\0\1\5\4\0\1\35\5\0\1\16"+ + "\3\35\1\0\4\35\4\0\1\35\5\0\1\16\1\50"+ + "\2\35\1\0\4\35\4\0\1\35\5\0\1\16\1\51"+ + "\2\37\1\52\1\35\1\51\1\37\1\35\12\0\1\40"+ + "\3\41\1\43\1\16\2\41\1\16\2\12\1\0\1\12"+ + "\1\35\5\0\1\12\1\36\2\53\1\0\1\54\1\35"+ + "\1\53\1\35\13\0\1\41\2\16\1\43\1\16\1\41"+ + "\2\16\2\47\2\0\17\47\4\0\1\35\5\0\1\16"+ + "\1\35\2\37\1\0\2\35\1\37\1\35\4\0\1\35"+ + "\5\0\1\16\1\51\2\35\1\52\1\35\1\51\2\35"+ + "\4\0\1\35\6\0\1\51\2\35\1\52\1\35\1\51"+ + "\2\35\2\12\1\0\1\12\1\35\5\0\1\21\1\51"+ + "\2\53\1\52\1\54\1\51\1\53\1\35\2\12\1\0"+ + "\1\12\1\35\5\0\1\21\1\35\2\54\1\0\1\54"+ + "\1\35\1\54\1\35"; + + private static int [] zzUnpackTrans() { + int [] result = new int[665]; + 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; + + /* error messages for the codes above */ + private static final String[] ZZ_ERROR_MSG = { + "Unknown 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 = + "\4\0\4\1\1\11\15\1\3\11\1\1\1\0\1\1"+ + "\4\0\2\1\1\0\4\1\3\0\2\1"; + + private static int [] zzUnpackAttribute() { + int [] result = new int[44]; + 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 input device */ + private java.io.Reader zzReader; + + /** 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 = ""; + + /** the textposition at the last accepting state */ + private int zzMarkedPos; + + /** 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; + + + /** + * Creates a new scanner + * + * @param in the java.io.Reader to read input from. + */ + IJPerfLexer(java.io.Reader in) { + this.zzReader = 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) { + int size = 0; + for (int i = 0, length = packed.length(); i < length; i += 2) { + size += packed.charAt(i); + } + char[] map = new char[size]; + int i = 0; /* index in packed string */ + int j = 0; /* index in unpacked array */ + while (i < packed.length()) { + 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; + zzCurrentPos = zzMarkedPos = zzStartRead = start; + zzAtEOF = false; + zzAtBOL = true; + zzEndRead = end; + yybegin(initialState); + } + + /** + * Refills the input buffer. + * + * @return {@code 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 {@code 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 zzBuffer.charAt(zzStartRead+pos); + } + + + /** + * Returns the length of the matched text region. + */ + public final int yylength() { + return zzMarkedPos-zzStartRead; + } + + + /** + * Reports an error that occurred 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; + + 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]; + + // set up zzAction for empty match case: + int zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + } + + + zzForAction: { + while (true) { + + if (zzCurrentPosL < zzEndReadL) { + zzInput = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzCurrentPosL += Character.charCount(zzInput); + } + 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 = Character.codePointAt(zzBufferL, zzCurrentPosL/*, zzEndReadL*/); + zzCurrentPosL += Character.charCount(zzInput); + } + } + int zzNext = zzTransL[ zzRowMapL[zzState] + ZZ_CMAP(zzInput) ]; + if (zzNext == -1) break zzForAction; + zzState = zzNext; + + zzAttributes = zzAttrL[zzState]; + if ( (zzAttributes & 1) == 1 ) { + zzAction = zzState; + zzMarkedPosL = zzCurrentPosL; + if ( (zzAttributes & 8) == 8 ) break zzForAction; + } + + } + } + + // store back cached position + zzMarkedPos = zzMarkedPosL; + + if (zzInput == YYEOF && zzStartRead == zzCurrentPos) { + zzAtEOF = true; + zzDoEOF(); + return null; + } + else { + switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) { + case 1: + { yybegin(WAITING_INPUT); return IJPerfElementTypes.COMMAND; + } + // fall through + case 13: break; + case 2: + { yybegin(YYINITIAL); return TokenType.WHITE_SPACE; + } + // fall through + case 14: break; + case 3: + { return TokenType.BAD_CHARACTER; + } + // fall through + case 15: break; + case 4: + { yybegin(WAITING_LAST_OPTION); return IJPerfElementTypes.IDENTIFIER; + } + // fall through + case 16: break; + case 5: + { yybegin(WAITING_LAST_OPTION); return TokenType.WHITE_SPACE; + } + // fall through + case 17: break; + case 6: + { yybegin(WAITING_LAST_OPTION); return IJPerfElementTypes.FILE_PATH; + } + // fall through + case 18: break; + case 7: + { yybegin(WAITING_LAST_OPTION); return IJPerfElementTypes.NUMBER; + } + // fall through + case 19: break; + case 8: + { yybegin(YYINITIAL); return IJPerfElementTypes.TEXT; + } + // fall through + case 20: break; + case 9: + { yybegin(WAITING_LAST_OPTION); return IJPerfElementTypes.OPTIONS_SEPARATOR; + } + // fall through + case 21: break; + case 10: + { yybegin(WAITING_LAST_OPTION); return IJPerfElementTypes.ASSIGNMENT_OPERATOR; + } + // fall through + case 22: break; + case 11: + { yybegin(WAITING_TEXT); return IJPerfElementTypes.PIPE; + } + // fall through + case 23: break; + case 12: + { yybegin(YYINITIAL); return IJPerfElementTypes.COMMENT; + } + // fall through + case 24: break; + default: + zzScanError(ZZ_NO_MATCH); + } + } + } + } + + +} diff --git a/plugins/performanceTesting/gen/com/jetbrains/performancePlugin/lang/parser/IJPerfParser.java b/plugins/performanceTesting/gen/com/jetbrains/performancePlugin/lang/parser/IJPerfParser.java new file mode 100644 index 000000000000..9d9625f51a78 --- /dev/null +++ b/plugins/performanceTesting/gen/com/jetbrains/performancePlugin/lang/parser/IJPerfParser.java @@ -0,0 +1,209 @@ +// This is a generated file. Not intended for manual editing. +package com.jetbrains.performancePlugin.lang.parser; + +import com.intellij.lang.PsiBuilder; +import com.intellij.lang.PsiBuilder.Marker; +import static com.jetbrains.performancePlugin.lang.psi.IJPerfElementTypes.*; +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; +import com.intellij.lang.LightPsiParser; + +@SuppressWarnings({"SimplifiableIfStatement", "UnusedAssignment"}) +public class IJPerfParser implements PsiParser, LightPsiParser { + + 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); + r = parse_root_(t, b); + exit_section_(b, 0, m, t, r, true, TRUE_CONDITION); + } + + protected boolean parse_root_(IElementType t, PsiBuilder b) { + return parse_root_(t, b, 0); + } + + static boolean parse_root_(IElementType t, PsiBuilder b, int l) { + return scriptFile(b, l + 1); + } + + /* ********************************************************** */ + // commandName optionList? + public static boolean commandLine(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "commandLine")) return false; + if (!nextTokenIs(b, COMMAND)) return false; + boolean r; + Marker m = enter_section_(b); + r = commandName(b, l + 1); + r = r && commandLine_1(b, l + 1); + exit_section_(b, m, COMMAND_LINE, r); + return r; + } + + // optionList? + private static boolean commandLine_1(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "commandLine_1")) return false; + optionList(b, l + 1); + return true; + } + + /* ********************************************************** */ + // COMMAND + public static boolean commandName(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "commandName")) return false; + if (!nextTokenIs(b, COMMAND)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeToken(b, COMMAND); + exit_section_(b, m, COMMAND_NAME, r); + return r; + } + + /* ********************************************************** */ + // NUMBER PIPE TEXT + public static boolean delayTypingOption(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "delayTypingOption")) return false; + if (!nextTokenIs(b, NUMBER)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeTokens(b, 0, NUMBER, PIPE, TEXT); + exit_section_(b, m, DELAY_TYPING_OPTION, r); + return r; + } + + /* ********************************************************** */ + // NUMBER OPTIONS_SEPARATOR NUMBER + public static boolean gotoOption(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "gotoOption")) return false; + if (!nextTokenIs(b, NUMBER)) return false; + boolean r; + Marker m = enter_section_(b); + r = consumeTokens(b, 0, NUMBER, OPTIONS_SEPARATOR, NUMBER); + exit_section_(b, m, GOTO_OPTION, r); + return r; + } + + /* ********************************************************** */ + // simpleOption | gotoOption | delayTypingOption | FILE_PATH | NUMBER + public static boolean option(PsiBuilder b, int l) { + if (!recursion_guard_(b, l, "option")) return false; + boolean r; + Marker m = enter_section_(b, l, _NONE_, OPTION, "