lexer/highlighting initial
This commit is contained in:
@@ -0,0 +1,22 @@
|
||||
<idea-plugin version="2">
|
||||
<name>Jet</name>
|
||||
<description>Jet Language support</description>
|
||||
<version>1.0</version>
|
||||
<vendor>JetBrains</vendor>
|
||||
|
||||
<application-components>
|
||||
<!-- Add your application components here -->
|
||||
</application-components>
|
||||
|
||||
<project-components>
|
||||
<!-- Add your project components here -->
|
||||
</project-components>
|
||||
|
||||
<actions>
|
||||
<!-- Add your actions here -->
|
||||
</actions>
|
||||
|
||||
<extensions defaultExtensionNs="com.intellij">
|
||||
<fileTypeFactory implementation="org.jetbrains.jet.lang.JetFileFactory"/>
|
||||
</extensions>
|
||||
</idea-plugin>
|
||||
@@ -0,0 +1,43 @@
|
||||
<project name="Lexer" default="lexer">
|
||||
<property name="home" value="${basedir}"/>
|
||||
<property file="${home}/idea.properties"/>
|
||||
|
||||
<property name="flex.base" value="${idea.home}/tools/lexer/jflex-1.4"/>
|
||||
<property name="out.dir" value="${basedir}/tmpout"/>
|
||||
|
||||
<macrodef name="flex">
|
||||
<attribute name="flexfile"/>
|
||||
<attribute name="destdir"/>
|
||||
<attribute name="skeleton" default="${idea.home}/tools/lexer/idea-flex.skeleton"/>
|
||||
<sequential>
|
||||
<delete dir="${out.dir}"/>
|
||||
<mkdir dir="${out.dir}"/>
|
||||
<java classname="JFlex.Main"
|
||||
jvmargs="-Xmx512M"
|
||||
fork="true"
|
||||
failonerror="true">
|
||||
<arg value="-sliceandcharat"/>
|
||||
<arg value="-skel"/>
|
||||
<arg value="@{skeleton}"/>
|
||||
<arg value="-d"/>
|
||||
<arg value="${out.dir}"/>
|
||||
<arg value="@{flexfile}"/>
|
||||
<classpath>
|
||||
<pathelement location="${flex.base}/lib/JFlex.jar"/>
|
||||
</classpath>
|
||||
</java>
|
||||
<move todir="@{destdir}">
|
||||
<fileset dir="${out.dir}">
|
||||
<include name="*.java"/>
|
||||
</fileset>
|
||||
</move>
|
||||
<delete dir="${out.dir}"/>
|
||||
</sequential>
|
||||
</macrodef>
|
||||
|
||||
<target name="lexer">
|
||||
<echo message="${flex.base}"/>
|
||||
<flex flexfile="${home}/src/org/jetbrains/jet/lexer/Jet.flex"
|
||||
destdir="${home}//src/org/jetbrains/jet/lexer/"/>
|
||||
</target>
|
||||
</project>
|
||||
+3
-2
@@ -1,11 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<module type="JAVA_MODULE" version="4">
|
||||
<module type="PLUGIN_MODULE" version="4">
|
||||
<component name="DevKit.ModuleBuildProperties" url="file://$MODULE_DIR$/META-INF/plugin.xml" />
|
||||
<component name="NewModuleRootManager" inherit-compiler-output="true">
|
||||
<exclude-output />
|
||||
<content url="file://$MODULE_DIR$">
|
||||
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
|
||||
</content>
|
||||
<orderEntry type="jdk" jdkName="IDEA jdk" jdkType="JavaSDK" />
|
||||
<orderEntry type="jdk" jdkName="IDEA 90.SNAPSHOT" jdkType="IDEA JDK" />
|
||||
<orderEntry type="sourceFolder" forTests="false" />
|
||||
</component>
|
||||
</module>
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lang;
|
||||
|
||||
import com.intellij.openapi.fileTypes.FileTypeConsumer;
|
||||
import com.intellij.openapi.fileTypes.FileTypeFactory;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class JetFileFactory extends FileTypeFactory {
|
||||
@Override
|
||||
public void createFileTypes(@NotNull FileTypeConsumer consumer) {
|
||||
consumer.consume(JetFileType.INSTANCE, "jet;jetl;jets");
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,38 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lang;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.fileTypes.LanguageFileType;
|
||||
import com.intellij.util.Icons;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
import javax.swing.*;
|
||||
|
||||
public class JetFileType extends LanguageFileType {
|
||||
public static final JetFileType INSTANCE = new JetFileType();
|
||||
|
||||
private JetFileType() {
|
||||
super(JetLanguage.INSTANCE);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getName() {
|
||||
return "jet";
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getDescription() {
|
||||
return "Jet Language";
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getDefaultExtension() {
|
||||
return "jet";
|
||||
}
|
||||
|
||||
public Icon getIcon() {
|
||||
return Icons.PROJECT_ICON;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,86 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lang;
|
||||
|
||||
import com.intellij.lexer.Lexer;
|
||||
import com.intellij.openapi.editor.HighlighterColors;
|
||||
import com.intellij.openapi.editor.SyntaxHighlighterColors;
|
||||
import com.intellij.openapi.editor.colors.TextAttributesKey;
|
||||
import com.intellij.openapi.fileTypes.SyntaxHighlighterBase;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.jet.lexer.JetLexer;
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
public class JetHighlighter extends SyntaxHighlighterBase {
|
||||
private static final Map<IElementType, TextAttributesKey> keys1;
|
||||
private static final Map<IElementType, TextAttributesKey> keys2;
|
||||
|
||||
static final TextAttributesKey JET_KEYWORD = TextAttributesKey.createTextAttributesKey(
|
||||
"JET.KEYWORD",
|
||||
SyntaxHighlighterColors.KEYWORD.getDefaultAttributes()
|
||||
);
|
||||
|
||||
static final TextAttributesKey JET_SOFT_KEYWORD = TextAttributesKey.createTextAttributesKey(
|
||||
"JET.SOFT.KEYWORD",
|
||||
SyntaxHighlighterColors.KEYWORD.getDefaultAttributes()
|
||||
);
|
||||
|
||||
static final TextAttributesKey JET_NUMBER = TextAttributesKey.createTextAttributesKey(
|
||||
"JET.NUMBER",
|
||||
SyntaxHighlighterColors.NUMBER.getDefaultAttributes()
|
||||
);
|
||||
|
||||
static final TextAttributesKey JET_STRING = TextAttributesKey.createTextAttributesKey(
|
||||
"JET.STRING",
|
||||
SyntaxHighlighterColors.STRING.getDefaultAttributes()
|
||||
);
|
||||
|
||||
static final TextAttributesKey JET_COMMENT = TextAttributesKey.createTextAttributesKey(
|
||||
"JET.COMMENT",
|
||||
SyntaxHighlighterColors.LINE_COMMENT.getDefaultAttributes()
|
||||
);
|
||||
|
||||
static final TextAttributesKey JET_BAD_CHARACTER = TextAttributesKey.createTextAttributesKey(
|
||||
"JET.BADCHARACTER",
|
||||
HighlighterColors.BAD_CHARACTER.getDefaultAttributes()
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@NotNull
|
||||
public Lexer getHighlightingLexer() {
|
||||
return new JetLexer();
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public TextAttributesKey[] getTokenHighlights(IElementType tokenType) {
|
||||
return pack(keys1.get(tokenType), keys2.get(tokenType));
|
||||
}
|
||||
|
||||
static {
|
||||
keys1 = new HashMap<IElementType, TextAttributesKey>();
|
||||
keys2 = new HashMap<IElementType, TextAttributesKey>();
|
||||
|
||||
|
||||
fillMap(keys1, JetTokens.KEYWORDS, JET_KEYWORD);
|
||||
|
||||
keys1.put(JetTokens.INTEGER_LITERAL, JET_NUMBER);
|
||||
keys1.put(JetTokens.FLOAT_LITERAL, JET_NUMBER);
|
||||
|
||||
keys1.put(JetTokens.STRING_LITERAL, JET_STRING);
|
||||
keys1.put(JetTokens.CHARACTER_LITERAL, JET_STRING);
|
||||
keys1.put(JetTokens.RAW_STRING_LITERAL, JET_STRING);
|
||||
|
||||
keys1.put(JetTokens.EOL_COMMENT, JET_COMMENT);
|
||||
keys1.put(JetTokens.BLOCK_COMMENT, JET_COMMENT);
|
||||
keys1.put(JetTokens.DOC_COMMENT, JET_COMMENT);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,26 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lang;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.openapi.fileTypes.SingleLazyInstanceSyntaxHighlighterFactory;
|
||||
import com.intellij.openapi.fileTypes.SyntaxHighlighter;
|
||||
import com.intellij.openapi.fileTypes.SyntaxHighlighterFactory;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class JetLanguage extends Language {
|
||||
public static JetLanguage INSTANCE = new JetLanguage();
|
||||
|
||||
private JetLanguage() {
|
||||
super("jet");
|
||||
|
||||
SyntaxHighlighterFactory.LANGUAGE_FACTORY.addExplicitExtension(this, new SingleLazyInstanceSyntaxHighlighterFactory() {
|
||||
@NotNull
|
||||
protected SyntaxHighlighter createHighlighter() {
|
||||
return new JetHighlighter();
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -5,6 +5,7 @@ import com.intellij.lexer.*;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
|
||||
import org.jetbrains.jet.lexer.JetTokens;
|
||||
|
||||
%%
|
||||
|
||||
@@ -19,216 +20,135 @@ import com.intellij.psi.tree.IElementType;
|
||||
DIGIT=[0-9]
|
||||
HEX_DIGIT=[0-9A-Fa-f]
|
||||
WHITE_SPACE_CHAR=[\ \n\t\f]
|
||||
BINARY_DIGIT=[0-1]
|
||||
|
||||
IDENTIFIER=[:jletter:] [:jletterdigit:]*
|
||||
|
||||
EOL_ESC=\\[\ \t]*\n
|
||||
NON_EOL=[^\n]|{EOL_ESC}
|
||||
|
||||
BLOCK_COMMENT=("/*" {COMMENT_TAIL})|"/*"
|
||||
BLOCK_COMMENT=("/*"[^"*"]{COMMENT_TAIL})|"/*"
|
||||
DOC_COMMENT="/*""*"+("/"|([^"/""*"]{COMMENT_TAIL}))?
|
||||
COMMENT_TAIL=([^"*"]*("*"+[^"*""/"])?)*("*"+"/")?
|
||||
EOL_COMMENT="/""/"{NON_EOL}*
|
||||
EOL_COMMENT="/""/"[^\n]*
|
||||
|
||||
INTEGER_LITERAL=({DECIMAL_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}|{BINARY_INTEGER_LITERAL})
|
||||
INTEGER_LITERAL={DECIMAL_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}|{BIN_INTEGER_LITERAL}
|
||||
DECIMAL_INTEGER_LITERAL=(0|([1-9]({DIGIT})*))
|
||||
HEX_INTEGER_LITERAL=0[Xx]({HEX_DIGIT})*
|
||||
BINARY_INTEGER_LITERAL=0[Bb]({BINARY_DIGIT})+
|
||||
BIN_INTEGER_LITERAL=0[Bb]({DIGIT})*
|
||||
LONG_LITERAL=({INTEGER_LITERAL})[Ll]
|
||||
|
||||
FLOAT_LITERAL=(({FLOATING_POINT_LITERAL1})[Ff])|(({FLOATING_POINT_LITERAL2})[Ff])|(({FLOATING_POINT_LITERAL3})[Ff])|(({FLOATING_POINT_LITERAL4})[Ff])
|
||||
DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Ll]?)|(({FLOATING_POINT_LITERAL2})[Ll]?)|(({FLOATING_POINT_LITERAL3})[Ll]?)|(({FLOATING_POINT_LITERAL4})[Ll])
|
||||
DOUBLE_LITERAL=(({FLOATING_POINT_LITERAL1})[Dd]?)|(({FLOATING_POINT_LITERAL2})[Dd]?)|(({FLOATING_POINT_LITERAL3})[Dd]?)|(({FLOATING_POINT_LITERAL4})[Dd])
|
||||
FLOATING_POINT_LITERAL1=({DIGIT})+"."({DIGIT})*({EXPONENT_PART})?
|
||||
FLOATING_POINT_LITERAL2="."({DIGIT})+({EXPONENT_PART})?
|
||||
FLOATING_POINT_LITERAL3=({DIGIT})+({EXPONENT_PART})
|
||||
FLOATING_POINT_LITERAL4=({DIGIT})+
|
||||
EXPONENT_PART=[Ee]["+""-"]?({DIGIT})*
|
||||
HEX_FLOAT_LITERAL={HEX_SIGNIFICANT}{BINARY_EXPONENT}[Ff]
|
||||
HEX_DOUBLE_LITERAL={HEX_SIGNIFICANT}{BINARY_EXPONENT}[Ll]?
|
||||
HEX_FLOAT_LITERAL={HEX_SIGNIFICAND}{BINARY_EXPONENT}[Ff]
|
||||
HEX_DOUBLE_LITERAL={HEX_SIGNIFICAND}{BINARY_EXPONENT}[Dd]?
|
||||
BINARY_EXPONENT=[Pp][+-]?{DIGIT}+
|
||||
HEX_SIGNIFICANT={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+
|
||||
HEX_SIGNIFICAND={HEX_INTEGER_LITERAL}|{HEX_INTEGER_LITERAL}.|0[Xx]{HEX_DIGIT}*.{HEX_DIGIT}+
|
||||
|
||||
CHARACTER_LITERAL=[L]?"'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
|
||||
CHARACTER_LITERAL="'"([^\\\'\n]|{ESCAPE_SEQUENCE})*("'"|\\)?
|
||||
STRING_LITERAL=\"([^\\\"\n]|{ESCAPE_SEQUENCE})*(\"|\\)?
|
||||
ESCAPE_SEQUENCE=\\[^\n]|{EOL_ESC}
|
||||
ESCAPE_SEQUENCE=\\[^\n]
|
||||
|
||||
NON_EOL_WS=[\ \t]|{EOL_ESC}
|
||||
PRP=# {NON_EOL_WS}*
|
||||
|
||||
DIRECTIVE_CONTENT=({NON_EOL}|{BLOCK_COMMENT})*
|
||||
|
||||
%state DIRECTIVE
|
||||
// ANY_ESCAPE_SEQUENCE = \\[^]
|
||||
THREE_QUO = (\"\"\")
|
||||
ONE_TWO_QUO = (\"[^\"]) | (\"\"[^\"])
|
||||
QUO_STRING_CHAR = [^\"] | {ONE_TWO_QUO}
|
||||
RAW_STRING_LITERAL = {THREE_QUO} {QUO_STRING_CHAR}* {THREE_QUO}?
|
||||
|
||||
%%
|
||||
|
||||
<YYINITIAL> {BLOCK_COMMENT} { return JetTokens.BLOCK_COMMENT; }
|
||||
<YYINITIAL> {DOC_COMMENT} { return JetTokens.DOC_COMMENT; }
|
||||
|
||||
<YYINITIAL> {BLOCK_COMMENT} { return OCTokenTypes.BLOCK_COMMENT; }
|
||||
<YYINITIAL> ({WHITE_SPACE_CHAR})+ { return JetTokens.WHITE_SPACE; }
|
||||
|
||||
<DIRECTIVE> {DIRECTIVE_CONTENT} {return OCTokenTypes.DIRECTIVE_CONTENT; }
|
||||
<YYINITIAL, DIRECTIVE> ({WHITE_SPACE_CHAR}|{EOL_ESC})+ { yybegin(YYINITIAL); return TokenType.WHITE_SPACE; }
|
||||
<YYINITIAL> {EOL_COMMENT} { return JetTokens.EOL_COMMENT; }
|
||||
|
||||
<YYINITIAL> {EOL_COMMENT} { return OCTokenTypes.EOL_COMMENT; }
|
||||
<YYINITIAL> {INTEGER_LITERAL} { return JetTokens.INTEGER_LITERAL; }
|
||||
|
||||
<YYINITIAL> {INTEGER_LITERAL} { return OCTokenTypes.INTEGER_LITERAL; }
|
||||
<YYINITIAL> {FLOAT_LITERAL} { return JetTokens.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {HEX_FLOAT_LITERAL} { return JetTokens.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {DOUBLE_LITERAL} { return JetTokens.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {HEX_DOUBLE_LITERAL} { return JetTokens.FLOAT_LITERAL; }
|
||||
|
||||
<YYINITIAL> {FLOAT_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {HEX_FLOAT_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {DOUBLE_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {HEX_DOUBLE_LITERAL} { return OCTokenTypes.FLOAT_LITERAL; }
|
||||
<YYINITIAL> {CHARACTER_LITERAL} { return JetTokens.CHARACTER_LITERAL; }
|
||||
<YYINITIAL> {STRING_LITERAL} { return JetTokens.STRING_LITERAL; }
|
||||
<YYINITIAL> {RAW_STRING_LITERAL} { return JetTokens.RAW_STRING_LITERAL; }
|
||||
|
||||
<YYINITIAL> {CHARACTER_LITERAL} { return OCTokenTypes.CHARACTER_LITERAL; }
|
||||
<YYINITIAL> "@" {STRING_LITERAL} { return OCTokenTypes.NSSTRING_LITERAL; }
|
||||
<YYINITIAL> {STRING_LITERAL} { return OCTokenTypes.STRING_LITERAL; }
|
||||
<YYINITIAL> "namespace" { return JetTokens.NAMESPACE_KEYWORD ;}
|
||||
<YYINITIAL> "import" { return JetTokens.IMPORT_KEYWORD ;}
|
||||
<YYINITIAL> "as" { return JetTokens.AS_KEYWORD ;}
|
||||
<YYINITIAL> "type" { return JetTokens.TYPE_KEYWORD ;}
|
||||
<YYINITIAL> "class" { return JetTokens.CLASS_KEYWORD ;}
|
||||
<YYINITIAL> "this" { return JetTokens.THIS_KEYWORD ;}
|
||||
<YYINITIAL> "val" { return JetTokens.VAL_KEYWORD ;}
|
||||
<YYINITIAL> "var" { return JetTokens.VAR_KEYWORD ;}
|
||||
<YYINITIAL> "fun" { return JetTokens.FUN_KEYWORD ;}
|
||||
<YYINITIAL> "decomposer" { return JetTokens.DECOMPOSER_KEYWORD ;}
|
||||
<YYINITIAL> "extension" { return JetTokens.EXTENSION_KEYWORD ;}
|
||||
<YYINITIAL> "for" { return JetTokens.FOR_KEYWORD ;}
|
||||
<YYINITIAL> "null" { return JetTokens.NULL_KEYWORD ;}
|
||||
<YYINITIAL> "typeof" { return JetTokens.TYPEOF_KEYWORD ;}
|
||||
<YYINITIAL> "new" { return JetTokens.NEW_KEYWORD ;}
|
||||
<YYINITIAL> "true" { return JetTokens.TRUE_KEYWORD ;}
|
||||
<YYINITIAL> "false" { return JetTokens.FALSE_KEYWORD ;}
|
||||
<YYINITIAL> "is" { return JetTokens.IS_KEYWORD ;}
|
||||
<YYINITIAL> "isnot" { return JetTokens.ISNOT_KEYWORD ;}
|
||||
<YYINITIAL> "in" { return JetTokens.IN_KEYWORD ;}
|
||||
<YYINITIAL> "throw" { return JetTokens.THROW_KEYWORD ;}
|
||||
<YYINITIAL> "return" { return JetTokens.RETURN_KEYWORD ;}
|
||||
<YYINITIAL> "break" { return JetTokens.BREAK_KEYWORD ;}
|
||||
<YYINITIAL> "continue" { return JetTokens.CONTINUE_KEYWORD ;}
|
||||
<YYINITIAL> "object" { return JetTokens.OBJECT_KEYWORD ;}
|
||||
<YYINITIAL> "if" { return JetTokens.IF_KEYWORD ;}
|
||||
<YYINITIAL> "else" { return JetTokens.ELSE_KEYWORD ;}
|
||||
<YYINITIAL> "while" { return JetTokens.WHILE_KEYWORD ;}
|
||||
<YYINITIAL> "do" { return JetTokens.DO_KEYWORD ;}
|
||||
<YYINITIAL> "match" { return JetTokens.MATCH_KEYWORD ;}
|
||||
|
||||
<YYINITIAL> {PRP} "if" { yybegin(DIRECTIVE); return OCTokenTypes.IF_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "ifdef" { yybegin(DIRECTIVE); return OCTokenTypes.IFDEF_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "ifndef" { yybegin(DIRECTIVE); return OCTokenTypes.IFNDEF_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "elif" { yybegin(DIRECTIVE); return OCTokenTypes.ELIF_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "else" { yybegin(DIRECTIVE); return OCTokenTypes.ELSE_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "endif" { yybegin(DIRECTIVE); return OCTokenTypes.ENDIF_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "include" { yybegin(DIRECTIVE); return OCTokenTypes.INCLUDE_DIRECTIVE;}
|
||||
<YYINITIAL> {PRP} "include_next" { yybegin(DIRECTIVE); return OCTokenTypes.INCLUDE_NEXT_DIRECTIVE;}
|
||||
<YYINITIAL> {PRP} "import" { yybegin(DIRECTIVE); return OCTokenTypes.IMPORT_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "define" { yybegin(DIRECTIVE); return OCTokenTypes.DEFINE_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "undef" { yybegin(DIRECTIVE); return OCTokenTypes.UNDEF_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "line" { yybegin(DIRECTIVE); return OCTokenTypes.LINE_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "error" { yybegin(DIRECTIVE); return OCTokenTypes.ERROR_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "warning" { yybegin(DIRECTIVE); return OCTokenTypes.WARNING_DIRECTIVE ;}
|
||||
<YYINITIAL> {PRP} "pragma" { yybegin(DIRECTIVE); return OCTokenTypes.PRAGMA_DIRECTIVE ;}
|
||||
<YYINITIAL> "#" {IDENTIFIER} { return OCTokenTypes.UNKNOWN_DIRECTIVE; }
|
||||
|
||||
<YYINITIAL> "auto" { return OCTokenTypes.AUTO_KEYWORD; }
|
||||
<YYINITIAL> "break" { return OCTokenTypes.BREAK_KEYWORD; }
|
||||
<YYINITIAL> "case" { return OCTokenTypes.CASE_KEYWORD; }
|
||||
<YYINITIAL> "char" { return OCTokenTypes.CHAR_KEYWORD; }
|
||||
<YYINITIAL> "continue" { return OCTokenTypes.CONTINUE_KEYWORD; }
|
||||
<YYINITIAL> "default" { return OCTokenTypes.DEFAULT_KEYWORD; }
|
||||
<YYINITIAL> "do" { return OCTokenTypes.DO_KEYWORD; }
|
||||
<YYINITIAL> "double" { return OCTokenTypes.DOUBLE_KEYWORD; }
|
||||
<YYINITIAL> "else" { return OCTokenTypes.ELSE_KEYWORD; }
|
||||
<YYINITIAL> "enum" { return OCTokenTypes.ENUM_KEYWORD; }
|
||||
<YYINITIAL> "extern" { return OCTokenTypes.EXTERN_KEYWORD; }
|
||||
<YYINITIAL> "float" { return OCTokenTypes.FLOAT_KEYWORD; }
|
||||
<YYINITIAL> "for" { return OCTokenTypes.FOR_KEYWORD; }
|
||||
<YYINITIAL> "goto" { return OCTokenTypes.GOTO_KEYWORD; }
|
||||
<YYINITIAL> "if" { return OCTokenTypes.IF_KEYWORD; }
|
||||
<YYINITIAL> {IDENTIFIER} { return JetTokens.IDENTIFIER; }
|
||||
|
||||
<YYINITIAL> "const" { return OCTokenTypes.CONST_KEYWORD; }
|
||||
<YYINITIAL> "__const" { return OCTokenTypes.CONST_KEYWORD; }
|
||||
<YYINITIAL> "__const__" { return OCTokenTypes.CONST_KEYWORD; }
|
||||
<YYINITIAL> "[" { return JetTokens.LBRACKET ; }
|
||||
<YYINITIAL> "]" { return JetTokens.RBRACKET ; }
|
||||
<YYINITIAL> "{" { return JetTokens.LBRACE ; }
|
||||
<YYINITIAL> "}" { return JetTokens.RBRACE ; }
|
||||
<YYINITIAL> "(" { return JetTokens.LPAR ; }
|
||||
<YYINITIAL> ")" { return JetTokens.RPAR ; }
|
||||
<YYINITIAL> "." { return JetTokens.DOT ; }
|
||||
<YYINITIAL> "++" { return JetTokens.PLUSPLUS ; }
|
||||
<YYINITIAL> "--" { return JetTokens.MINUSMINUS; }
|
||||
<YYINITIAL> "*" { return JetTokens.MUL ; }
|
||||
<YYINITIAL> "+" { return JetTokens.PLUS ; }
|
||||
<YYINITIAL> "-" { return JetTokens.MINUS ; }
|
||||
<YYINITIAL> "!" { return JetTokens.EXCL ; }
|
||||
<YYINITIAL> "/" { return JetTokens.DIV ; }
|
||||
<YYINITIAL> "%" { return JetTokens.PERC ; }
|
||||
<YYINITIAL> "<" { return JetTokens.LT ; }
|
||||
<YYINITIAL> ">" { return JetTokens.GT ; }
|
||||
<YYINITIAL> "<=" { return JetTokens.LTEQ ; }
|
||||
<YYINITIAL> ">=" { return JetTokens.GTEQ ; }
|
||||
<YYINITIAL> "===" { return JetTokens.EQEQEQ ; }
|
||||
<YYINITIAL> "==" { return JetTokens.EQEQ ; }
|
||||
<YYINITIAL> "!=" { return JetTokens.EXCLEQ ; }
|
||||
<YYINITIAL> "&&" { return JetTokens.ANDAND ; }
|
||||
<YYINITIAL> "||" { return JetTokens.OROR ; }
|
||||
<YYINITIAL> "?." { return JetTokens.SAFE_ACCESS;}
|
||||
<YYINITIAL> "?:" { return JetTokens.ELVIS ; }
|
||||
<YYINITIAL> ".*" { return JetTokens.MAP ; }
|
||||
<YYINITIAL> ".?" { return JetTokens.FILTER ; }
|
||||
<YYINITIAL> "?" { return JetTokens.QUEST ; }
|
||||
<YYINITIAL> ":" { return JetTokens.COLON ; }
|
||||
<YYINITIAL> ";" { return JetTokens.SEMICOLON ; }
|
||||
<YYINITIAL> ".." { return JetTokens.RANGE ; }
|
||||
<YYINITIAL> "=" { return JetTokens.EQ ; }
|
||||
<YYINITIAL> "*=" { return JetTokens.MULTEQ ; }
|
||||
<YYINITIAL> "/=" { return JetTokens.DIVEQ ; }
|
||||
<YYINITIAL> "%=" { return JetTokens.PERCEQ ; }
|
||||
<YYINITIAL> "+=" { return JetTokens.PLUSEQ ; }
|
||||
<YYINITIAL> "-=" { return JetTokens.MINUSEQ ; }
|
||||
<YYINITIAL> "," { return JetTokens.COMMA ; }
|
||||
|
||||
<YYINITIAL> "inline" { return OCTokenTypes.INLINE_KEYWORD; }
|
||||
<YYINITIAL> "__inline" { return OCTokenTypes.INLINE_KEYWORD; }
|
||||
<YYINITIAL> "__inline__" { return OCTokenTypes.INLINE_KEYWORD; }
|
||||
|
||||
<YYINITIAL> "signed" { return OCTokenTypes.SIGNED_KEYWORD; }
|
||||
<YYINITIAL> "__signed" { return OCTokenTypes.SIGNED_KEYWORD; }
|
||||
<YYINITIAL> "__signed__" { return OCTokenTypes.SIGNED_KEYWORD; }
|
||||
|
||||
<YYINITIAL> "volatile" { return OCTokenTypes.VOLATILE_KEYWORD; }
|
||||
<YYINITIAL> "__volatile" { return OCTokenTypes.VOLATILE_KEYWORD; }
|
||||
<YYINITIAL> "__volatile__" { return OCTokenTypes.VOLATILE_KEYWORD; }
|
||||
|
||||
<YYINITIAL> "int" { return OCTokenTypes.INT_KEYWORD; }
|
||||
<YYINITIAL> "long" { return OCTokenTypes.LONG_KEYWORD; }
|
||||
<YYINITIAL> "register" { return OCTokenTypes.REGISTER_KEYWORD; }
|
||||
<YYINITIAL> "restrict" { return OCTokenTypes.RESTRICT_KEYWORD; }
|
||||
<YYINITIAL> "__strong" { return OCTokenTypes.STRONG_KEYWORD; }
|
||||
<YYINITIAL> "__weak" { return OCTokenTypes.WEAK_KEYWORD; }
|
||||
<YYINITIAL> "__block" { return OCTokenTypes.BLOCK_KEYWORD; }
|
||||
<YYINITIAL> "return" { return OCTokenTypes.RETURN_KEYWORD; }
|
||||
<YYINITIAL> "short" { return OCTokenTypes.SHORT_KEYWORD; }
|
||||
<YYINITIAL> "sizeof" { return OCTokenTypes.SIZEOF_KEYWORD; }
|
||||
<YYINITIAL> "__alignof__" { return OCTokenTypes.ALIGNOF_KEYWORD; }
|
||||
<YYINITIAL> "__typeof__" { return OCTokenTypes.TYPEOF_KEYWORD; }
|
||||
<YYINITIAL> "static" { return OCTokenTypes.STATIC_KEYWORD; }
|
||||
<YYINITIAL> "struct" { return OCTokenTypes.STRUCT_KEYWORD; }
|
||||
<YYINITIAL> "switch" { return OCTokenTypes.SWITCH_KEYWORD; }
|
||||
<YYINITIAL> "typedef" { return OCTokenTypes.TYPEDEF_KEYWORD; }
|
||||
<YYINITIAL> "union" { return OCTokenTypes.UNION_KEYWORD; }
|
||||
<YYINITIAL> "unsigned" { return OCTokenTypes.UNSIGNED_KEYWORD; }
|
||||
<YYINITIAL> "void" { return OCTokenTypes.VOID_KEYWORD; }
|
||||
<YYINITIAL> "while" { return OCTokenTypes.WHILE_KEYWORD; }
|
||||
<YYINITIAL> "_Bool" { return OCTokenTypes._BOOL_KEYWORD; }
|
||||
<YYINITIAL> "_Complex" { return OCTokenTypes._COMPLEX_KEYWORD; }
|
||||
<YYINITIAL> "_Imaginary" { return OCTokenTypes._IMAGINARY_KEYWORD; }
|
||||
<YYINITIAL> "__attribute__" { return OCTokenTypes.__ATTRIBUTE_KEYWORD; }
|
||||
<YYINITIAL> "__asm" { return OCTokenTypes.__ASM_KEYWORD; }
|
||||
|
||||
<YYINITIAL> "@interface" { return OCTokenTypes.INTERFACE_KEYWORD ; }
|
||||
<YYINITIAL> "@implementation" { return OCTokenTypes.IMPLEMENTATION_KEYWORD; }
|
||||
<YYINITIAL> "@protocol" { return OCTokenTypes.PROTOCOL_KEYWORD ; }
|
||||
<YYINITIAL> "@end" { return OCTokenTypes.END_KEYWORD ; }
|
||||
<YYINITIAL> "@private" { return OCTokenTypes.PRIVATE_KEYWORD ; }
|
||||
<YYINITIAL> "@protected" { return OCTokenTypes.PROTECTED_KEYWORD ; }
|
||||
<YYINITIAL> "@public" { return OCTokenTypes.PUBLIC_KEYWORD ; }
|
||||
<YYINITIAL> "@package" { return OCTokenTypes.PACKAGE_KEYWORD ; }
|
||||
<YYINITIAL> "@optional" { return OCTokenTypes.OPTIONAL_KEYWORD ; }
|
||||
<YYINITIAL> "@required" { return OCTokenTypes.REQUIRED_KEYWORD ; }
|
||||
<YYINITIAL> "@try" { return OCTokenTypes.TRY_KEYWORD ; }
|
||||
<YYINITIAL> "@throw" { return OCTokenTypes.THROW_KEYWORD ; }
|
||||
<YYINITIAL> "@catch" { return OCTokenTypes.CATCH_KEYWORD ; }
|
||||
<YYINITIAL> "@finally" { return OCTokenTypes.FINALLY_KEYWORD ; }
|
||||
<YYINITIAL> "@class" { return OCTokenTypes.CLASS_KEYWORD ; }
|
||||
<YYINITIAL> "@selector" { return OCTokenTypes.SELECTOR_KEYWORD ; }
|
||||
<YYINITIAL> "@encode" { return OCTokenTypes.ENCODE_KEYWORD ; }
|
||||
<YYINITIAL> "@synchronized" { return OCTokenTypes.SYNCHRONIZED_KEYWORD ; }
|
||||
<YYINITIAL> "@property" { return OCTokenTypes.PROPERTY_KEYWORD ; }
|
||||
<YYINITIAL> "@synthesize" { return OCTokenTypes.SYNTHESIZE_KEYWORD ; }
|
||||
<YYINITIAL> "@dynamic" { return OCTokenTypes.DYNAMIC_KEYWORD ; }
|
||||
<YYINITIAL> "@" {IDENTIFIER} { return OCTokenTypes.UNKNOWN_AT_KEYWORD ; }
|
||||
|
||||
<YYINITIAL> {IDENTIFIER} { return OCTokenTypes.IDENTIFIER; }
|
||||
|
||||
<YYINITIAL> "[" { return OCTokenTypes.LBRACKET ; }
|
||||
<YYINITIAL> "]" { return OCTokenTypes.RBRACKET ; }
|
||||
<YYINITIAL> "{" { return OCTokenTypes.LBRACE ; }
|
||||
<YYINITIAL> "}" { return OCTokenTypes.RBRACE ; }
|
||||
<YYINITIAL> "(" { return OCTokenTypes.LPAR ; }
|
||||
<YYINITIAL> ")" { return OCTokenTypes.RPAR ; }
|
||||
<YYINITIAL> "." { return OCTokenTypes.DOT ; }
|
||||
<YYINITIAL> "->" { return OCTokenTypes.DEREF ; }
|
||||
<YYINITIAL> "++" { return OCTokenTypes.PLUSPLUS ; }
|
||||
<YYINITIAL> "--" { return OCTokenTypes.MINUSMINUS; }
|
||||
<YYINITIAL> "&" { return OCTokenTypes.AND ; }
|
||||
<YYINITIAL> "*" { return OCTokenTypes.MUL ; }
|
||||
<YYINITIAL> "+" { return OCTokenTypes.PLUS ; }
|
||||
<YYINITIAL> "-" { return OCTokenTypes.MINUS ; }
|
||||
<YYINITIAL> "~" { return OCTokenTypes.TILDE ; }
|
||||
<YYINITIAL> "!" { return OCTokenTypes.EXCL ; }
|
||||
<YYINITIAL> "/" { return OCTokenTypes.DIV ; }
|
||||
<YYINITIAL> "%" { return OCTokenTypes.PERC ; }
|
||||
<YYINITIAL> "<<" { return OCTokenTypes.LTLT ; }
|
||||
<YYINITIAL> ">>" { return OCTokenTypes.GTGT ; }
|
||||
<YYINITIAL> "<" { return OCTokenTypes.LT ; }
|
||||
<YYINITIAL> ">" { return OCTokenTypes.GT ; }
|
||||
<YYINITIAL> "<=" { return OCTokenTypes.LTEQ ; }
|
||||
<YYINITIAL> ">=" { return OCTokenTypes.GTEQ ; }
|
||||
<YYINITIAL> "==" { return OCTokenTypes.EQEQ ; }
|
||||
<YYINITIAL> "!=" { return OCTokenTypes.EXCLEQ ; }
|
||||
<YYINITIAL> "^" { return OCTokenTypes.XOR ; }
|
||||
<YYINITIAL> "|" { return OCTokenTypes.OR ; }
|
||||
<YYINITIAL> "&&" { return OCTokenTypes.ANDAND ; }
|
||||
<YYINITIAL> "||" { return OCTokenTypes.OROR ; }
|
||||
<YYINITIAL> "?" { return OCTokenTypes.QUEST ; }
|
||||
<YYINITIAL> ":" { return OCTokenTypes.COLON ; }
|
||||
<YYINITIAL> ";" { return OCTokenTypes.SEMICOLON ; }
|
||||
<YYINITIAL> "..." { return OCTokenTypes.ELLIPSIS ; }
|
||||
<YYINITIAL> "=" { return OCTokenTypes.EQ ; }
|
||||
<YYINITIAL> "*=" { return OCTokenTypes.MULTEQ ; }
|
||||
<YYINITIAL> "/=" { return OCTokenTypes.DIVEQ ; }
|
||||
<YYINITIAL> "%=" { return OCTokenTypes.PERCEQ ; }
|
||||
<YYINITIAL> "+=" { return OCTokenTypes.PLUSEQ ; }
|
||||
<YYINITIAL> "-=" { return OCTokenTypes.MINUSEQ ; }
|
||||
<YYINITIAL> "<<=" { return OCTokenTypes.LTLTEQ ; }
|
||||
<YYINITIAL> ">>=" { return OCTokenTypes.GTGTEQ ; }
|
||||
<YYINITIAL> "&=" { return OCTokenTypes.ANDEQ ; }
|
||||
<YYINITIAL> "^=" { return OCTokenTypes.XOREQ ; }
|
||||
<YYINITIAL> "|=" { return OCTokenTypes.OREQ ; }
|
||||
<YYINITIAL> "," { return OCTokenTypes.COMMA ; }
|
||||
<YYINITIAL> "#" { return OCTokenTypes.HASH ; }
|
||||
<YYINITIAL> "<#" { return OCTokenTypes.TEMPLATE_START_MARK; }
|
||||
<YYINITIAL> "#>" { return OCTokenTypes.TEMPLATE_STOP_MARK; }
|
||||
<YYINITIAL> "##" { return OCTokenTypes.HASHHASH ; }
|
||||
|
||||
<YYINITIAL, DIRECTIVE> . { yybegin(YYINITIAL); return TokenType.BAD_CHARACTER; }
|
||||
<YYINITIAL> . { return TokenType.BAD_CHARACTER; }
|
||||
|
||||
|
||||
@@ -0,0 +1,15 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lexer;
|
||||
|
||||
import com.intellij.lexer.FlexAdapter;
|
||||
import com.intellij.lexer.FlexLexer;
|
||||
|
||||
import java.io.Reader;
|
||||
|
||||
public class JetLexer extends FlexAdapter {
|
||||
public JetLexer() {
|
||||
super(new _JetLexer((Reader) null));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lexer;
|
||||
|
||||
import com.intellij.lang.Language;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
import org.jetbrains.jet.lang.JetLanguage;
|
||||
|
||||
public class JetToken extends IElementType {
|
||||
public JetToken(@NotNull @NonNls String debugName) {
|
||||
super(debugName, JetLanguage.INSTANCE);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,132 @@
|
||||
/*
|
||||
* @author max
|
||||
*/
|
||||
package org.jetbrains.jet.lexer;
|
||||
|
||||
import com.intellij.psi.TokenType;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.tree.TokenSet;
|
||||
import gnu.trove.THashSet;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Set;
|
||||
|
||||
public interface JetTokens {
|
||||
JetToken BLOCK_COMMENT = new JetToken("BLOCK_COMMENT");
|
||||
JetToken DOC_COMMENT = new JetToken("DOC_COMMENT");
|
||||
JetToken EOL_COMMENT = new JetToken("EOL_COMMENT");
|
||||
|
||||
IElementType WHITE_SPACE = TokenType.WHITE_SPACE;
|
||||
|
||||
JetToken INTEGER_LITERAL = new JetToken("INTEGER_LITERAL");
|
||||
JetToken FLOAT_LITERAL = new JetToken("FLOAT_LITERAL");
|
||||
JetToken CHARACTER_LITERAL = new JetToken("CHARACTER_LITERAL");
|
||||
JetToken STRING_LITERAL = new JetToken("STRING_LITERAL");
|
||||
JetToken RAW_STRING_LITERAL = new JetToken("RAW_STRING_LITERAL");
|
||||
|
||||
JetToken NAMESPACE_KEYWORD = new JetToken("NAMESPACE_KEYWORD");
|
||||
JetToken IMPORT_KEYWORD = new JetToken("IMPORT_KEYWORD");
|
||||
JetToken AS_KEYWORD = new JetToken("AS_KEYWORD");
|
||||
JetToken TYPE_KEYWORD = new JetToken("TYPE_KEYWORD");
|
||||
JetToken CLASS_KEYWORD = new JetToken("CLASS_KEYWORD");
|
||||
JetToken THIS_KEYWORD = new JetToken("THIS_KEYWORD");
|
||||
JetToken VAL_KEYWORD = new JetToken("VAL_KEYWORD");
|
||||
JetToken VAR_KEYWORD = new JetToken("VAR_KEYWORD");
|
||||
JetToken FUN_KEYWORD = new JetToken("FUN_KEYWORD");
|
||||
JetToken DECOMPOSER_KEYWORD = new JetToken("DECOMPOSER_KEYWORD");
|
||||
JetToken EXTENSION_KEYWORD = new JetToken("EXTENSION_KEYWORD");
|
||||
JetToken FOR_KEYWORD = new JetToken("FOR_KEYWORD");
|
||||
JetToken NULL_KEYWORD = new JetToken("NULL_KEYWORD");
|
||||
JetToken TYPEOF_KEYWORD = new JetToken("TYPEOF_KEYWORD");
|
||||
JetToken NEW_KEYWORD = new JetToken("NEW_KEYWORD");
|
||||
JetToken TRUE_KEYWORD = new JetToken("TRUE_KEYWORD");
|
||||
JetToken FALSE_KEYWORD = new JetToken("FALSE_KEYWORD");
|
||||
JetToken IS_KEYWORD = new JetToken("IS_KEYWORD");
|
||||
JetToken ISNOT_KEYWORD = new JetToken("ISNOT_KEYWORD");
|
||||
JetToken IN_KEYWORD = new JetToken("IN_KEYWORD");
|
||||
JetToken THROW_KEYWORD = new JetToken("THROW_KEYWORD");
|
||||
JetToken RETURN_KEYWORD = new JetToken("RETURN_KEYWORD");
|
||||
JetToken BREAK_KEYWORD = new JetToken("BREAK_KEYWORD");
|
||||
JetToken CONTINUE_KEYWORD = new JetToken("CONTINUE_KEYWORD");
|
||||
JetToken OBJECT_KEYWORD = new JetToken("OBJECT_KEYWORD");
|
||||
JetToken IF_KEYWORD = new JetToken("IF_KEYWORD");
|
||||
JetToken ELSE_KEYWORD = new JetToken("ELSE_KEYWORD");
|
||||
JetToken WHILE_KEYWORD = new JetToken("WHILE_KEYWORD");
|
||||
JetToken DO_KEYWORD = new JetToken("DO_KEYWORD");
|
||||
JetToken MATCH_KEYWORD = new JetToken("MATCH_KEYWORD");
|
||||
|
||||
|
||||
JetToken IDENTIFIER = new JetToken("IDENTIFIER");
|
||||
|
||||
JetToken LBRACKET = new JetToken("LBRACKET");
|
||||
JetToken RBRACKET = new JetToken("RBRACKET");
|
||||
JetToken LBRACE = new JetToken("LBRACE");
|
||||
JetToken RBRACE = new JetToken("RBRACE");
|
||||
JetToken LPAR = new JetToken("LPAR");
|
||||
JetToken RPAR = new JetToken("RPAR");
|
||||
JetToken DOT = new JetToken("DOT");
|
||||
JetToken PLUSPLUS = new JetToken("PLUSPLUS");
|
||||
JetToken MINUSMINUS = new JetToken("MINUSMINUS");
|
||||
JetToken MUL = new JetToken("MUL");
|
||||
JetToken PLUS = new JetToken("PLUS");
|
||||
JetToken MINUS = new JetToken("MINUS");
|
||||
JetToken EXCL = new JetToken("EXCL");
|
||||
JetToken DIV = new JetToken("DIV");
|
||||
JetToken PERC = new JetToken("PERC");
|
||||
JetToken LT = new JetToken("LT");
|
||||
JetToken GT = new JetToken("GT");
|
||||
JetToken LTEQ = new JetToken("LTEQ");
|
||||
JetToken GTEQ = new JetToken("GTEQ");
|
||||
JetToken EQEQEQ = new JetToken("EQEQEQ");
|
||||
JetToken EQEQ = new JetToken("EQEQ");
|
||||
JetToken EXCLEQ = new JetToken("EXCLEQ");
|
||||
JetToken ANDAND = new JetToken("ANDAND");
|
||||
JetToken OROR = new JetToken("OROR");
|
||||
JetToken SAFE_ACCESS = new JetToken("SAFE_ACCESS");
|
||||
JetToken ELVIS = new JetToken("ELVIS");
|
||||
JetToken MAP = new JetToken("MAP");
|
||||
JetToken FILTER = new JetToken("FILTER");
|
||||
JetToken QUEST = new JetToken("QUEST");
|
||||
JetToken COLON = new JetToken("COLON");
|
||||
JetToken SEMICOLON = new JetToken("SEMICOLON");
|
||||
JetToken RANGE = new JetToken("RANGE");
|
||||
JetToken EQ = new JetToken("EQ");
|
||||
JetToken MULTEQ = new JetToken("MULTEQ");
|
||||
JetToken DIVEQ = new JetToken("DIVEQ");
|
||||
JetToken PERCEQ = new JetToken("PERCEQ");
|
||||
JetToken PLUSEQ = new JetToken("PLUSEQ");
|
||||
JetToken MINUSEQ = new JetToken("MINUSEQ");
|
||||
JetToken COMMA = new JetToken("COMMA");
|
||||
|
||||
JetToken WRAPS_KEYWORD = new JetToken("wraps");
|
||||
JetToken WHERE_KEYWORD = new JetToken("where");
|
||||
JetToken BY_KEYWORD = new JetToken("by");
|
||||
JetToken LAZY_KEYWORD = new JetToken("lazy");
|
||||
JetToken GET_KEYWORD = new JetToken("get");
|
||||
JetToken SET_KEYWORD = new JetToken("set");
|
||||
JetToken ABSTRACT_KEYWORD = new JetToken("abstract");
|
||||
JetToken VIRTUAL_KEYWORD = new JetToken("virtual");
|
||||
JetToken ENUM_KEYWORD = new JetToken("enum");
|
||||
JetToken OPEN_KEYWORD = new JetToken("open");
|
||||
JetToken ATTRIBUTE_KEYWORD = new JetToken("attribute");
|
||||
JetToken OVERRIDE_KEYWORD = new JetToken("override");
|
||||
JetToken PRIVATE_KEYWORD = new JetToken("private");
|
||||
JetToken PUBLIC_KEYWORD = new JetToken("public");
|
||||
JetToken INTERNAL_KEYWORD = new JetToken("internal");
|
||||
JetToken PROTECTED_KEYWORD = new JetToken("protected");
|
||||
JetToken OUT_KEYWORD = new JetToken("out");
|
||||
JetToken REF_KEYWORD = new JetToken("ref");
|
||||
|
||||
TokenSet KEYWORDS = TokenSet.create(NAMESPACE_KEYWORD, IMPORT_KEYWORD, AS_KEYWORD, TYPE_KEYWORD, CLASS_KEYWORD,
|
||||
THIS_KEYWORD, VAL_KEYWORD, VAR_KEYWORD, FUN_KEYWORD, DECOMPOSER_KEYWORD, EXTENSION_KEYWORD, FOR_KEYWORD,
|
||||
NULL_KEYWORD, TYPEOF_KEYWORD, NEW_KEYWORD, TRUE_KEYWORD, FALSE_KEYWORD, IS_KEYWORD, ISNOT_KEYWORD,
|
||||
IN_KEYWORD, THROW_KEYWORD, RETURN_KEYWORD, BREAK_KEYWORD, CONTINUE_KEYWORD, OBJECT_KEYWORD, IF_KEYWORD,
|
||||
ELSE_KEYWORD, WHILE_KEYWORD, DO_KEYWORD, MATCH_KEYWORD
|
||||
);
|
||||
|
||||
TokenSet SOFT_KEYWORDS = TokenSet.create(WRAPS_KEYWORD, WHERE_KEYWORD, BY_KEYWORD, LAZY_KEYWORD, GET_KEYWORD,
|
||||
SET_KEYWORD, ABSTRACT_KEYWORD, VIRTUAL_KEYWORD, ENUM_KEYWORD, OPEN_KEYWORD, ATTRIBUTE_KEYWORD,
|
||||
OVERRIDE_KEYWORD, PRIVATE_KEYWORD, PUBLIC_KEYWORD, INTERNAL_KEYWORD, PROTECTED_KEYWORD, OUT_KEYWORD,
|
||||
REF_KEYWORD
|
||||
);
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user