Skip to content
Snippets Groups Projects
Select Git revision
  • 097a80cf457c56605a18bab54257bdd11c92ce45
  • develop default protected
  • support-for-intellij-25.1
  • chore/support-for-intellijj-2024.3
  • feature/references
  • feature/commenter-for-aspect-files
  • feature/link-generated-code-and-definition
  • main
  • legacy
  • v0.3.5 protected
  • v0.3.4 protected
  • v0.3.3 protected
  • v0.3.2 protected
  • v0.3.1 protected
  • v0.3.0 protected
  • v0.2.0 protected
16 results

JastAddAspect.flex

Blame
  • JastAddAspect.flex 5.77 KiB
    package org.jastadd.tooling.aspect.lexer;
    
    import com.intellij.lexer.FlexLexer;
    import com.intellij.psi.tree.IElementType;
    import org.jastadd.tooling.aspect.psi.JastAddAspectTypes;
    import com.intellij.psi.TokenType;
    
    %%
    
    %class JastAddAspectLexer
    %implements FlexLexer
    %unicode
    %function advance
    %type IElementType
    %eof{  return;
    %eof}
    
    %{
      private int counter = 0;
    %}
    
    
    WhiteSpace        = [ ] | \t | \f | \n | \r | \r\n
    //ID                = [a-zA-Z$_][a-zA-Z0-9$_]*
    //MultiLineComment  = [/][*][^*]+[*]+([^*/][^*]*[*]+)*[/]
    //DocComment        = [/][*][*][^*]*[*]+([^*/][^*]*[*]+)*[/]
    //SingleLineComment = [/][/] [^\n\r]* (\n | \r | \r\n)
    NotParenthesis    = [^{}]*
    
    %state JAVA
    
    %%
    
    <YYINITIAL> {
     {WhiteSpace}+                  {}
     "EQ"                           { yybegin(YYINITIAL); return JastAddAspectTypes.EQ; }
     "{"                            { yybegin(JAVA); counter = 1;  }
    }
    
    <JAVA_PARENTHESIS_BLOCK> {
     {NotParenthesis}               {}
     "{"                            { counter++; yybegin(JAVA); }
     "}"                            { counter--; if (counter==0) { yybegin(YYINITIAL); return JastAddAspectTypes.JAVABLOCK; } }
    }
    
    <JAVATOKENS> {
     "abstract"                     { return JastAddAspectTypes.ABSTRACT; }
     "assert"                       { return JastAddAspectTypes.ASSERT; }
     "boolean"                      { return JastAddAspectTypes.BOOLEAN; }
     "break"                        { return JastAddAspectTypes.BREAK; }
     "byte"                         { return JastAddAspectTypes.BYTE; }
     "case"                         { return JastAddAspectTypes.CASE; }
     "catch"                        { return JastAddAspectTypes.CATCH; }
     "char"                         { return JastAddAspectTypes.CHAR; }
     "class"                        { return JastAddAspectTypes.CLASS; }
     "const"                        { return JastAddAspectTypes.CONST; }
     "continue"                     { return JastAddAspectTypes.CONTINUE; }
     "default"                      { return JastAddAspectTypes._DEFAULT; }
     "do"                           { return JastAddAspectTypes.DO; }
     "double"                       { return JastAddAspectTypes.DOUBLE; }
     "else"                         { return JastAddAspectTypes.ELSE; }
     "enum"                         { return JastAddAspectTypes.ENUM; }
     "extends"                      { return JastAddAspectTypes.EXTENDS; }
     "false"                        { return JastAddAspectTypes.FALSE; }
     "final"                        { return JastAddAspectTypes.FINAL; }
     "finally"                      { return JastAddAspectTypes.FINALLY; }
     "float"                        { return JastAddAspectTypes.FLOAT; }
     "for"                          { return JastAddAspectTypes.FOR; }
     "goto"                         { return JastAddAspectTypes.GOTO; }
     "if"                           { return JastAddAspectTypes.IF; }
     "implements"                   { return JastAddAspectTypes.IMPLEMENTS; }
     "import"                       { return JastAddAspectTypes.IMPORT; }
     "instanceof"                   { return JastAddAspectTypes.INSTANCEOF; }
     "int"                          { return JastAddAspectTypes.INT; }
     "interface"                    { return JastAddAspectTypes.INTERFACE; }
     "long"                         { return JastAddAspectTypes.LONG; }
     "native"                       { return JastAddAspectTypes.NATIVE; }
     "new"                          { return JastAddAspectTypes.NEW; }
     "null"                         { return JastAddAspectTypes.NULL; }
     "package"                      { return JastAddAspectTypes.PACKAGE; }
     "private"                      { return JastAddAspectTypes.PRIVATE; }
     "protected"                    { return JastAddAspectTypes.PROTECTED; }
     "public"                       { return JastAddAspectTypes.PUBLIC; }
     "return"                       { return JastAddAspectTypes.RETURN; }
     "short"                        { return JastAddAspectTypes.SHORT; }
     "static"                       { return JastAddAspectTypes.STATIC; }
     "strictfp"                     { return JastAddAspectTypes.STRICTFP; }
     "super"                        { return JastAddAspectTypes.SUPER; }
     "switch"                       { return JastAddAspectTypes.SWITCH; }
     "synchronized"                 { return JastAddAspectTypes.SYNCHRONIZED; }
     "this"                         { return JastAddAspectTypes.THIS; }
     "throw"                        { return JastAddAspectTypes.THROW; }
     "throws"                       { return JastAddAspectTypes.THROWS; }
     "transient"                    { return JastAddAspectTypes.TRANSIENT; }
     "true"                         { return JastAddAspectTypes.TRUE; }
     "try"                          { return JastAddAspectTypes.TRY; }
     "void"                         { return JastAddAspectTypes.VOID; }
     "volatile"                     { return JastAddAspectTypes.VOLATILE; }
     "while"                        { return JastAddAspectTypes.WHILE; }
    
     // JastAdd
    
      "inh"                         { return JastAddAspectTypes.INH; }
      "syn"                         { return JastAddAspectTypes.SYN; }
      "lazy"                        { return JastAddAspectTypes.LAZY; }
      "rewrite"                     { return JastAddAspectTypes.REWRITE; }
      "to"                          { return JastAddAspectTypes.TO; }
      "when"                        { return JastAddAspectTypes.WHEN; }
      "aspect"                      { return JastAddAspectTypes.ASPECT; }
      "eq"                          { return JastAddAspectTypes.EQUATION; }
      "circular"                    { return JastAddAspectTypes.CIRCULAR; }
      "refine"                      { return JastAddAspectTypes.REFINE; }
      "contributes"                 { return JastAddAspectTypes.CONTRIBUTES; }
      "each"                        { return JastAddAspectTypes.EACH; }
      "nta"                         { return JastAddAspectTypes.NTA; }
      "cache"                       { return JastAddAspectTypes.CACHE; }
      "uncache"                     { return JastAddAspectTypes.UNCACHE; }
    }