/*------------------------------------------------------------------------------

Autogenerated by autogen/gen_token_trie.py
------------------------------------------------------------------------------*/

switch(lookahead){
  case 'a':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'b':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_ABS, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'c':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_ACCESS, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'v':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'k':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'f':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_AFTER, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_ALIAS, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_ALL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'n':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_AND, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'u':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { RESERVED_ARCHITECTURE, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'h':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'h':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'h':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'y':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_ARRAY, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'g':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_ASSERT, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_ASSUME, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, ATTRIBUTE_FUNCTION, ATTRIBUTE_VALUE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'b':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'u':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_ATTRIBUTE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'p':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'd':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'y':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'b':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { BASE_SPECIFIER_BINARY, 0 };
      type = type_array;
    }
    switch(lookahead){
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'g':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_BEGIN, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'k':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_BLOCK, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'y':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_BODY, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'g':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'c':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'o':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'r':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'd':
                                                                                lookahead = advance(lexer);
                                                                                lexer->mark_end(lexer);
                                                                                {
                                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                  type = type_array;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case 'v':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'c':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'r':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'f':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_BUFFER, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_BUS, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { ATTRIBUTE_TYPE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
              type = type_array;
            }
            switch(lookahead){
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'c':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'o':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'd':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'v':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'l':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'y':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'w':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  case 'k':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'u':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'm':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'b':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'w':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'c':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_CASE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'h':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'l':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'm':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'n':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 't':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'v':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'c':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case '_':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    switch(lookahead){
                                                                      case 'p':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 't':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'r':
                                                                                lookahead = advance(lexer);
                                                                                lexer->mark_end(lexer);
                                                                                {
                                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                  type = type_array;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'm':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'p':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_COMPONENT, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'x':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'p':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'l':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'p':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'l':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'a':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'u':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'n':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { RESERVED_CONFIGURATION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_CONSTANT, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'x':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_CONTEXT, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'v':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { ATTRIBUTE_MODE_VIEW, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'j':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'v':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_COVER, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'y':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'h':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'h':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'l':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 's':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'r':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'f':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'p':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'h':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'c':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'n':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'g':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case '_':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'e':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'c':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'o':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'r':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'd':
                                                                                        lookahead = advance(lexer);
                                                                                        lexer->mark_end(lexer);
                                                                                        {
                                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                          type = type_array;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      case '1':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '2':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '8':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '9':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case '3':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '0':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '1':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '2':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '3':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '4':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '5':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '6':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '7':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '8':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '9':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case '4':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '0':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '1':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '2':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '3':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '4':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '5':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '6':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '7':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '8':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '9':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case '5':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '0':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '1':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '2':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '3':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '4':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '5':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '6':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '7':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '8':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              case '9':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'b':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'm':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'x':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'd':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { BASE_SPECIFIER_DECIMAL, 0 };
      type = type_array;
    }
    switch(lookahead){
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'f':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'u':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_DEFAULT, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'g':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'u':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'b':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'y':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'p':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'e':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { ATTRIBUTE_SUBTYPE, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'y':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { ATTRIBUTE_SIGNAL, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'h':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'c':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { RESERVED_DISCONNECT, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'y':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'm':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 's':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'u':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 's':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case '_':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'a':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'n':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'g':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'e':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case '_':
                                                                                        lookahead = advance(lexer);
                                                                                        lexer->mark_end(lexer);
                                                                                        {
                                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                          type = type_array;
                                                                                        }
                                                                                        switch(lookahead){
                                                                                          case 'r':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'e':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'c':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'o':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'r':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'd':
                                                                                                                lookahead = advance(lexer);
                                                                                                                lexer->mark_end(lexer);
                                                                                                                {
                                                                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                  type = type_array;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'a':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'u':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 's':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    switch(lookahead){
                                                                      case '_':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        switch(lookahead){
                                                                          case 'r':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'a':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'n':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'g':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'e':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case '_':
                                                                                                lookahead = advance(lexer);
                                                                                                lexer->mark_end(lexer);
                                                                                                {
                                                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                                  type = type_array;
                                                                                                }
                                                                                                switch(lookahead){
                                                                                                  case 'r':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'e':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'c':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'o':
                                                                                                                lookahead = advance(lexer);
                                                                                                                type = 0;
                                                                                                                switch(lookahead){
                                                                                                                  case 'r':
                                                                                                                    lookahead = advance(lexer);
                                                                                                                    type = 0;
                                                                                                                    switch(lookahead){
                                                                                                                      case 'd':
                                                                                                                        lookahead = advance(lexer);
                                                                                                                        lexer->mark_end(lexer);
                                                                                                                        {
                                                                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                          type = type_array;
                                                                                                                        }
                                                                                                                        break;
                                                                                                                      default:
                                                                                                                        break;
                                                                                                                    }
                                                                                                                    break;
                                                                                                                  default:
                                                                                                                    break;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'd':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 's':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'a':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'u':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 's':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    switch(lookahead){
                                                                      case '_':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        switch(lookahead){
                                                                          case 'r':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'a':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'n':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'g':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'e':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case '_':
                                                                                                lookahead = advance(lexer);
                                                                                                lexer->mark_end(lexer);
                                                                                                {
                                                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                                  type = type_array;
                                                                                                }
                                                                                                switch(lookahead){
                                                                                                  case 'r':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'e':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'c':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'o':
                                                                                                                lookahead = advance(lexer);
                                                                                                                type = 0;
                                                                                                                switch(lookahead){
                                                                                                                  case 'r':
                                                                                                                    lookahead = advance(lexer);
                                                                                                                    type = 0;
                                                                                                                    switch(lookahead){
                                                                                                                      case 'd':
                                                                                                                        lookahead = advance(lexer);
                                                                                                                        lexer->mark_end(lexer);
                                                                                                                        {
                                                                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                          type = type_array;
                                                                                                                        }
                                                                                                                        break;
                                                                                                                      default:
                                                                                                                        break;
                                                                                                                    }
                                                                                                                    break;
                                                                                                                  default:
                                                                                                                    break;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'd':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'f':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'p':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'x':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 's':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'f':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'w':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'k':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'g':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'd':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'r':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'v':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'b':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'p':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '2':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'w':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_DOWNTO, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'v':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'v':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'l':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'u':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'y':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'f':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'w':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'k':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'c':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '1':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          case '2':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          case '3':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          case '4':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'e':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_ELSE, 0 };
                  type = type_array;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'f':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_ELSIF, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'm':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { ATTRIBUTE_SUBTYPE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'n':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_END, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'y':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_ENTITY, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'q':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'x':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_EXIT, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'p':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_CONSTANT_DEBUG, DIRECTIVE_ERROR, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'v':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'p':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'h':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'x':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          case 'b':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'm':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'c':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'q':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case 'f':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 's':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_FAIRNESS, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'u':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT_DEBUG, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_CONSTANT_BOOLEAN, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'g':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_FILE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'a':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 't':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'u':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 's':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        switch(lookahead){
                                                                          case '_':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            switch(lookahead){
                                                                              case 'r':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'a':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'n':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'g':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'e':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case '_':
                                                                                                    lookahead = advance(lexer);
                                                                                                    lexer->mark_end(lexer);
                                                                                                    {
                                                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                                      type = type_array;
                                                                                                    }
                                                                                                    switch(lookahead){
                                                                                                      case 'r':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'e':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'c':
                                                                                                                lookahead = advance(lexer);
                                                                                                                type = 0;
                                                                                                                switch(lookahead){
                                                                                                                  case 'o':
                                                                                                                    lookahead = advance(lexer);
                                                                                                                    type = 0;
                                                                                                                    switch(lookahead){
                                                                                                                      case 'r':
                                                                                                                        lookahead = advance(lexer);
                                                                                                                        type = 0;
                                                                                                                        switch(lookahead){
                                                                                                                          case 'd':
                                                                                                                            lookahead = advance(lexer);
                                                                                                                            lexer->mark_end(lexer);
                                                                                                                            {
                                                                                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                              type = type_array;
                                                                                                                            }
                                                                                                                            break;
                                                                                                                          default:
                                                                                                                            break;
                                                                                                                        }
                                                                                                                        break;
                                                                                                                      default:
                                                                                                                        break;
                                                                                                                    }
                                                                                                                    break;
                                                                                                                  default:
                                                                                                                    break;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'h':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 's':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'n':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'p':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'k':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'n':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'd':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case '_':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'a':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'n':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'g':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'e':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case '_':
                                                                                    lookahead = advance(lexer);
                                                                                    lexer->mark_end(lexer);
                                                                                    {
                                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                      type = type_array;
                                                                                    }
                                                                                    switch(lookahead){
                                                                                      case 'r':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'e':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'c':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'o':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'r':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'd':
                                                                                                            lookahead = advance(lexer);
                                                                                                            lexer->mark_end(lexer);
                                                                                                            {
                                                                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                              type = type_array;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 's':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'a':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'u':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 's':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case '_':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    switch(lookahead){
                                                                      case 'r':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'a':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'n':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'g':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'e':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case '_':
                                                                                            lookahead = advance(lexer);
                                                                                            lexer->mark_end(lexer);
                                                                                            {
                                                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                              type = type_array;
                                                                                            }
                                                                                            switch(lookahead){
                                                                                              case 'r':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'e':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'c':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'o':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'r':
                                                                                                                lookahead = advance(lexer);
                                                                                                                type = 0;
                                                                                                                switch(lookahead){
                                                                                                                  case 'd':
                                                                                                                    lookahead = advance(lexer);
                                                                                                                    lexer->mark_end(lexer);
                                                                                                                    {
                                                                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                      type = type_array;
                                                                                                                    }
                                                                                                                    break;
                                                                                                                  default:
                                                                                                                    break;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case '_':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'a':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'n':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'g':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'e':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case '_':
                                                                                        lookahead = advance(lexer);
                                                                                        lexer->mark_end(lexer);
                                                                                        {
                                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                          type = type_array;
                                                                                        }
                                                                                        switch(lookahead){
                                                                                          case 'r':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'e':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'c':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'o':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'r':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'd':
                                                                                                                lookahead = advance(lexer);
                                                                                                                lexer->mark_end(lexer);
                                                                                                                {
                                                                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                  type = type_array;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 'k':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'i':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'd':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case '_':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    switch(lookahead){
                                                                      case 'r':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'a':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'n':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'g':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'e':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case '_':
                                                                                            lookahead = advance(lexer);
                                                                                            lexer->mark_end(lexer);
                                                                                            {
                                                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                              type = type_array;
                                                                                            }
                                                                                            switch(lookahead){
                                                                                              case 'r':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'e':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'c':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'o':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'r':
                                                                                                                lookahead = advance(lexer);
                                                                                                                type = 0;
                                                                                                                switch(lookahead){
                                                                                                                  case 'd':
                                                                                                                    lookahead = advance(lexer);
                                                                                                                    lexer->mark_end(lexer);
                                                                                                                    {
                                                                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                      type = type_array;
                                                                                                                    }
                                                                                                                    break;
                                                                                                                  default:
                                                                                                                    break;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  case 'b':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'g':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'i':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'n':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  case 'c':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'u':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'e':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'n':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 't':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'n':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'd':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'c':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'k':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'w':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'k':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'z':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'u':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'c':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'm':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'h':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'f':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'm':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'h':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'm':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'x':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'u':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'y':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'l':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'e':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case '_':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        switch(lookahead){
                                                                          case 't':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'y':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'p':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'e':
                                                                                        lookahead = advance(lexer);
                                                                                        lexer->mark_end(lexer);
                                                                                        {
                                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                          type = type_array;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'v':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'f':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'l':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'w':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case '_':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case 's':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 't':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'y':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'l':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'e':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case '_':
                                                                                    lookahead = advance(lexer);
                                                                                    lexer->mark_end(lexer);
                                                                                    {
                                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                      type = type_array;
                                                                                    }
                                                                                    switch(lookahead){
                                                                                      case 't':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'y':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'p':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'e':
                                                                                                    lookahead = advance(lexer);
                                                                                                    lexer->mark_end(lexer);
                                                                                                    {
                                                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                      type = type_array;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'u':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'c':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'u':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'w':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'p':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_FOR, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_FORCE, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_ATTRIBUTE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'y':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'm':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'g':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'g':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'l':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'r':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'i':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'n':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'g':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'h':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'g':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'x':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'n':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'g':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'b':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'g':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'y':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'i':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'n':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'g':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'f':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'u':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'h':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case '3':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '2':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case '6':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '4':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case '1':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '2':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case '8':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'p':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'h':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'y':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'h':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'a':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'l':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'g':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'e':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_GENERATE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_GENERIC, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'v':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 'p':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'h':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'p':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'c':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'p':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'v':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'a':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'l':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'u':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'e':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'p':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'v':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 's':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 't':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'v':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'h':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'u':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'n':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 't':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'a':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'b':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'l':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'e':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      case 'f':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'm':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'a':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 't':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'v':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'i':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 't':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'y':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'p':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_GROUP, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_GUARDED, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'm':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case 'i':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'f':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_IF, 0 };
          type = type_array;
        }
        break;
      case 'm':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_IMPURE, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'g':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'n':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_IN, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_INERTIAL, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_INOUT, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'd':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'x':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { ATTRIBUTE_SUBTYPE, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'm':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { ATTRIBUTE_VALUE, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'g':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'g':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'c':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'o':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'r':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'd':
                                                                                lookahead = advance(lexer);
                                                                                lexer->mark_end(lexer);
                                                                                {
                                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                  type = type_array;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case 'v':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'c':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'r':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_IS, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'v':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 's':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'f':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'a':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'i':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'l':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'e':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'd':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case '_':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'x':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'v':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'x':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
              type = type_array;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_NAMESPACE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'l':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'b':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_LABEL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'v':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'v':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'u':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'b':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'y':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_LIBRARY, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'k':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_LINKAGE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_LITERAL, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'p':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_LOOP, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'w':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, ATTRIBUTE_VALUE, 0 };
              type = type_array;
            }
            break;
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'g':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'b':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              case '2':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              case '1':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '0':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'f':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT, ATTRIBUTE_FUNCTION, ATTRIBUTE_VALUE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'f':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'g':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'h':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, ATTRIBUTE_PURE_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'f':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case 'm':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_MAP, 0 };
              type = type_array;
            }
            break;
          case 'x':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'u':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'm':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'c':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                          type = type_array;
                        }
                        break;
                      case '1':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'v':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  case 'p':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'i':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'q':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'r':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 't':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case '_':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    switch(lookahead){
                                                                      case '2':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'v':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case '_':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                      type = type_array;
                                                    }
                                                    switch(lookahead){
                                                      case '2':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      case '3':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      case '4':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case '2':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'p':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case '3':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'p':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'v':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'r':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case '_':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case '2':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'f':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case '2':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  case '1':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '0':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case '2':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'f':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case '_':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                      type = type_array;
                                                    }
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case '1':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '0':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'f':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'q':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case '2':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          case 'p':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'a':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'd':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 'd':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'g':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'c':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'b':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case '1':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              case 'j':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'z':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_MOD, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'y':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'u':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'm':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
          type = type_array;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'n':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_NAND, 0 };
                  type = type_array;
                }
                break;
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'p':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'k':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          case 'm':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'w':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_NEW, 0 };
              type = type_array;
            }
            break;
          case 'x':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_NEXT, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'f':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'g':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'f':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'f':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'p':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'l':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'm':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'l':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'z':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'f':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'p':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_NOR, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'm':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'z':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_NOT, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_DEBUG, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'w':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_NULL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case 'o':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { BASE_SPECIFIER_OCTAL, 0 };
      type = type_array;
    }
    switch(lookahead){
      case 'f':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_OF, 0 };
          type = type_array;
        }
        break;
      case 'n':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_ON, 0 };
          type = type_array;
        }
        break;
      case 'p':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_OPEN, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'k':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_OR, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'h':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_OTHERS, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_OUT, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'p':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'u':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'w':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'c':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'w':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'p':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'k':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_PACKAGE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_PARAMETER, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { ATTRIBUTE_VALUE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_PORT, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'p':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_POSTPONED, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'v':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'z':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'm':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'l':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'l':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'f':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'f':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'p':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 'c':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'm':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'p':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'l':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'x':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'u':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_PROCEDURE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_PROCESS, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'p':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_PROPERTY, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'c':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { DIRECTIVE_PROTECT, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_PROTECTED, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'v':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_PRIVATE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'p':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'l':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'v':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'u':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_PURE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'f':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'd':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'c':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'v':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'd':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 's':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'c':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'v':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'e':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'd':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'r':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'g':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { ATTRIBUTE_RANGE, RESERVED_RANGE, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'c':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'o':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case '_':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'a':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'n':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'g':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'e':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case '_':
                                                                                        lookahead = advance(lexer);
                                                                                        lexer->mark_end(lexer);
                                                                                        {
                                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                          type = type_array;
                                                                                        }
                                                                                        switch(lookahead){
                                                                                          case 'r':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'e':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'c':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'o':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'r':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'd':
                                                                                                                lookahead = advance(lexer);
                                                                                                                lexer->mark_end(lexer);
                                                                                                                {
                                                                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                  type = type_array;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { ATTRIBUTE_TYPE, RESERVED_RECORD, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'p':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'l':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'g':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_REGISTER, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'j':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_REJECT, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { RESERVED_RELEASE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'm':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_REM, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_REPORT, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_RESTRICT, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'u':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'l':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'm':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'i':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 't':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'z':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_RETURN, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'v':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'g':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { ATTRIBUTE_RANGE, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'f':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'c':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { ATTRIBUTE_IMPURE_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'd':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'b':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'x':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'd':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'm':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'w':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'm':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'd':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_ROL, 0 };
              type = type_array;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_ROR, 0 };
              type = type_array;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'f':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'h':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'u':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'p':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'f':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'f':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'z':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'g':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_CONSTANT, ATTRIBUTE_FUNCTION, ATTRIBUTE_VALUE, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'f':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 's':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_SELECT, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'q':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_SEQUENCE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'v':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_SEVERITY, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 'l':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'v':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'l':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case '_':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'a':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'n':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'g':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'e':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case '_':
                                                                                    lookahead = advance(lexer);
                                                                                    lexer->mark_end(lexer);
                                                                                    {
                                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                      type = type_array;
                                                                                    }
                                                                                    switch(lookahead){
                                                                                      case 'r':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'e':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'c':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'o':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'r':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'd':
                                                                                                            lookahead = advance(lexer);
                                                                                                            lexer->mark_end(lexer);
                                                                                                            {
                                                                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                              type = type_array;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'c':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'm':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'p':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'v':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'a':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 's':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 't':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'v':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'h':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'a':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'b':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'l':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'e':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      case 'f':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'm':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'a':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 't':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'v':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'i':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 't':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'y':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'g':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { ATTRIBUTE_SIGNAL, RESERVED_SIGNAL, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'm':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'p':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'a':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'm':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { ATTRIBUTE_VALUE, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'd':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'd':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'h':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_SHARED, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'f':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'h':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_SLA, 0 };
              type = type_array;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_SLL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_SRA, 0 };
              type = type_array;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_SRL, 0 };
              type = type_array;
            }
            break;
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { RESERVED_STRONG, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'a':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'w':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'b':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { ATTRIBUTE_SIGNAL, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'u':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'k':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'f':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'o':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'u':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'd':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              case 'e':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'm':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'p':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'y':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'c':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 't':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'o':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'r':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'y':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'f':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                          type = type_array;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'c':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'c':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 's':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'd':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'n':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'i':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'e':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'd':
                                                                                lookahead = advance(lexer);
                                                                                lexer->mark_end(lexer);
                                                                                {
                                                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                                                  type = type_array;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'm':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case '_':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'x':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'i':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 's':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 't':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 's':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'r':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'p':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'n':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'e':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'd':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'p':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'd':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_NAMESPACE, 0 };
              type = type_array;
            }
            switch(lookahead){
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'u':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'c':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'v':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'o':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'c':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'v':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'c':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 't':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'm':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'h':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'x':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'b':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'y':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { ATTRIBUTE_SUBTYPE, RESERVED_SUBTYPE, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'c':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'c':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'y':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'b':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { BASE_SPECIFIER_BINARY, 0 };
          type = type_array;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, BASE_SPECIFIER_OCTAL, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'h':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'x':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { BASE_SPECIFIER_HEX, 0 };
          type = type_array;
        }
        break;
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'y':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'w':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'f':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'x':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'h':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'h':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'w':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'h':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'h':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'w':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'c':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'b':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'q':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 't':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'h':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_THEN, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'u':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'y':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { RESERVED_TO, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'y':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'p':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, DIRECTIVE_CONSTANT_BUILTIN, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, DIRECTIVE_CONSTANT_BUILTIN, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'n':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, DIRECTIVE_CONSTANT_BUILTIN, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'm':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, DIRECTIVE_CONSTANT_BUILTIN, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'n':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, DIRECTIVE_CONSTANT_BUILTIN, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case '_':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'd':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'u':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'c':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                switch(lookahead){
                                                  case 'v':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'c':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 't':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'o':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'r':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'c':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'v':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 't':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'o':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'c':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case '_':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                      type = type_array;
                                                    }
                                                    switch(lookahead){
                                                      case 'v':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'e':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'c':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 't':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'o':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'r':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'u':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'l':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'g':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'i':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'c':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case '_':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case 'v':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'c':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 't':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'o':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'r':
                                                                                lookahead = advance(lexer);
                                                                                lexer->mark_end(lexer);
                                                                                {
                                                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                                  type = type_array;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'v':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'u':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'v':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'g':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'f':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'x':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'c':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '_':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                      type = type_array;
                                    }
                                    switch(lookahead){
                                      case 's':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'n':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'g':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'h':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'x':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 's':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'n':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'g':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'b':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'i':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'y':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 's':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'i':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'g':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                                  type = type_array;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 't':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'v':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'c':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'v':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'c':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 't':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'r':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'v':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case '0':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '1':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'x':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '0':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '1':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'z':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'x':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '0':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case '1':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'f':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'x':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'n':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case '3':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '2':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case '6':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '4':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  case '1':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '2':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '8':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { RESERVED_TRANSPORT, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'n':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { ATTRIBUTE_SIGNAL, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'u':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_CONSTANT_BOOLEAN, 0 };
                  type = type_array;
                }
                break;
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'c':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'y':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'p':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_TYPE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'm':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'r':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'd':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'g':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'r':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'c':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'o':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'd':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 't':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case '_':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                  type = type_array;
                                }
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'c':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'o':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'n':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'd':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 's':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                                              type = type_array;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'c':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 't':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'o':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'r':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'y':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'x':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'e':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'u':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'n':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'f':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'c':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { RESERVED_UNAFFECTED, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_UNITS, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'v':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 's':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'l':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '_':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                          type = type_array;
                                        }
                                        switch(lookahead){
                                          case 'i':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'n':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 't':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'e':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'g':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'r':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case '_':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        switch(lookahead){
                                                                          case 'r':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'a':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case 'n':
                                                                                    lookahead = advance(lexer);
                                                                                    type = 0;
                                                                                    switch(lookahead){
                                                                                      case 'g':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'e':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case '_':
                                                                                                lookahead = advance(lexer);
                                                                                                lexer->mark_end(lexer);
                                                                                                {
                                                                                                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                                  type = type_array;
                                                                                                }
                                                                                                switch(lookahead){
                                                                                                  case 'r':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'e':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'c':
                                                                                                            lookahead = advance(lexer);
                                                                                                            type = 0;
                                                                                                            switch(lookahead){
                                                                                                              case 'o':
                                                                                                                lookahead = advance(lexer);
                                                                                                                type = 0;
                                                                                                                switch(lookahead){
                                                                                                                  case 'r':
                                                                                                                    lookahead = advance(lexer);
                                                                                                                    type = 0;
                                                                                                                    switch(lookahead){
                                                                                                                      case 'd':
                                                                                                                        lookahead = advance(lexer);
                                                                                                                        lexer->mark_end(lexer);
                                                                                                                        {
                                                                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                                          type = type_array;
                                                                                                                        }
                                                                                                                        break;
                                                                                                                      default:
                                                                                                                        break;
                                                                                                                    }
                                                                                                                    break;
                                                                                                                  default:
                                                                                                                    break;
                                                                                                                }
                                                                                                                break;
                                                                                                              default:
                                                                                                                break;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          case 'r':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'e':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'a':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'l':
                                                        lookahead = advance(lexer);
                                                        lexer->mark_end(lexer);
                                                        {
                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                          type = type_array;
                                                        }
                                                        switch(lookahead){
                                                          case '_':
                                                            lookahead = advance(lexer);
                                                            lexer->mark_end(lexer);
                                                            {
                                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                              type = type_array;
                                                            }
                                                            switch(lookahead){
                                                              case 'r':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'a':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'n':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'g':
                                                                            lookahead = advance(lexer);
                                                                            type = 0;
                                                                            switch(lookahead){
                                                                              case 'e':
                                                                                lookahead = advance(lexer);
                                                                                type = 0;
                                                                                switch(lookahead){
                                                                                  case '_':
                                                                                    lookahead = advance(lexer);
                                                                                    lexer->mark_end(lexer);
                                                                                    {
                                                                                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                                                                      type = type_array;
                                                                                    }
                                                                                    switch(lookahead){
                                                                                      case 'r':
                                                                                        lookahead = advance(lexer);
                                                                                        type = 0;
                                                                                        switch(lookahead){
                                                                                          case 'e':
                                                                                            lookahead = advance(lexer);
                                                                                            type = 0;
                                                                                            switch(lookahead){
                                                                                              case 'c':
                                                                                                lookahead = advance(lexer);
                                                                                                type = 0;
                                                                                                switch(lookahead){
                                                                                                  case 'o':
                                                                                                    lookahead = advance(lexer);
                                                                                                    type = 0;
                                                                                                    switch(lookahead){
                                                                                                      case 'r':
                                                                                                        lookahead = advance(lexer);
                                                                                                        type = 0;
                                                                                                        switch(lookahead){
                                                                                                          case 'd':
                                                                                                            lookahead = advance(lexer);
                                                                                                            lexer->mark_end(lexer);
                                                                                                            {
                                                                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                                                              type = type_array;
                                                                                                            }
                                                                                                            break;
                                                                                                          default:
                                                                                                            break;
                                                                                                        }
                                                                                                        break;
                                                                                                      default:
                                                                                                        break;
                                                                                                    }
                                                                                                    break;
                                                                                                  default:
                                                                                                    break;
                                                                                                }
                                                                                                break;
                                                                                              default:
                                                                                                break;
                                                                                            }
                                                                                            break;
                                                                                          default:
                                                                                            break;
                                                                                        }
                                                                                        break;
                                                                                      default:
                                                                                        break;
                                                                                    }
                                                                                    break;
                                                                                  default:
                                                                                    break;
                                                                                }
                                                                                break;
                                                                              default:
                                                                                break;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'm':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'l':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_UNTIL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'o':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'v':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case '_':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                                              type = type_array;
                                            }
                                            switch(lookahead){
                                              case 'u':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'n':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 's':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'i':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'g':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'n':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case 'e':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case 'd':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  case 'f':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'i':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'x':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'd':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              case 's':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'i':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'g':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'n':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'd':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  case 'f':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'i':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'x':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 'e':
                                                                lookahead = advance(lexer);
                                                                type = 0;
                                                                switch(lookahead){
                                                                  case 'd':
                                                                    lookahead = advance(lexer);
                                                                    lexer->mark_end(lexer);
                                                                    {
                                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                      type = type_array;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              case 'f':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'l':
                                                    lookahead = advance(lexer);
                                                    type = 0;
                                                    switch(lookahead){
                                                      case 'o':
                                                        lookahead = advance(lexer);
                                                        type = 0;
                                                        switch(lookahead){
                                                          case 'a':
                                                            lookahead = advance(lexer);
                                                            type = 0;
                                                            switch(lookahead){
                                                              case 't':
                                                                lookahead = advance(lexer);
                                                                lexer->mark_end(lexer);
                                                                {
                                                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                  type = type_array;
                                                                }
                                                                switch(lookahead){
                                                                  case '3':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case '2':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  case '6':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case '4':
                                                                        lookahead = advance(lexer);
                                                                        lexer->mark_end(lexer);
                                                                        {
                                                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                          type = type_array;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  case '1':
                                                                    lookahead = advance(lexer);
                                                                    type = 0;
                                                                    switch(lookahead){
                                                                      case '2':
                                                                        lookahead = advance(lexer);
                                                                        type = 0;
                                                                        switch(lookahead){
                                                                          case '8':
                                                                            lookahead = advance(lexer);
                                                                            lexer->mark_end(lexer);
                                                                            {
                                                                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                                              type = type_array;
                                                                            }
                                                                            break;
                                                                          default:
                                                                            break;
                                                                        }
                                                                        break;
                                                                      default:
                                                                        break;
                                                                    }
                                                                    break;
                                                                  default:
                                                                    break;
                                                                }
                                                                break;
                                                              default:
                                                                break;
                                                            }
                                                            break;
                                                          default:
                                                            break;
                                                        }
                                                        break;
                                                      default:
                                                        break;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'g':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'r':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_USE, 0 };
              type = type_array;
            }
            break;
          case 'p':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'b':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { BASE_SPECIFIER_BINARY, 0 };
          type = type_array;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { BASE_SPECIFIER_OCTAL, 0 };
          type = type_array;
        }
        break;
      case 'x':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { BASE_SPECIFIER_HEX, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '0':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '1':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'z':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case '_':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'u':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 's':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'i':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'd':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'x':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'g':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'f':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'x':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'f':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'o':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'a':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 't':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case '3':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '2':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case '6':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '4':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case '1':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case '2':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case '8':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'f':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'x':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'd':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case '_':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                              type = type_array;
                            }
                            switch(lookahead){
                              case 'h':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'i':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'g':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'h':
                                            lookahead = advance(lexer);
                                            lexer->mark_end(lexer);
                                            {
                                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                              type = type_array;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              case 'l':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'o':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'w':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'h':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'g':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'h':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'o':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'w':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'v':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'a':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'b':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'l':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'e':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { RESERVED_VARIABLE, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'l':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { ATTRIBUTE_PURE_FUNCTION, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'u':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { ATTRIBUTE_VALUE, ATTRIBUTE_PURE_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'f':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'p':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 't':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'a':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 't':
                                                lookahead = advance(lexer);
                                                type = 0;
                                                switch(lookahead){
                                                  case 'e':
                                                    lookahead = advance(lexer);
                                                    lexer->mark_end(lexer);
                                                    {
                                                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                                                      type = type_array;
                                                    }
                                                    break;
                                                  default:
                                                    break;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'w':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_VIEW, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'm':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_VMODE, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'p':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'k':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'g':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_VPKG, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'p':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_VPROP, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_VUNIT, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'h':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '_':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case 'v':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'e':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'r':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 's':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'i':
                                        lookahead = advance(lexer);
                                        type = 0;
                                        switch(lookahead){
                                          case 'o':
                                            lookahead = advance(lexer);
                                            type = 0;
                                            switch(lookahead){
                                              case 'n':
                                                lookahead = advance(lexer);
                                                lexer->mark_end(lexer);
                                                {
                                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, DIRECTIVE_CONSTANT_BUILTIN, 0 };
                                                  type = type_array;
                                                }
                                                break;
                                              default:
                                                break;
                                            }
                                            break;
                                          default:
                                            break;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case 'w':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_WAIT, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'n':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'g':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_CONSTANT_DEBUG, DIRECTIVE_WARNING, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'h':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_WHEN, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { RESERVED_WHILE, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 't':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_WITH, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case 'd':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'h':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'd':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 's':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'd':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'y':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT_ENV, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'k':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_NAMESPACE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'e':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'm':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'o':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'd':
                                    lookahead = advance(lexer);
                                    type = 0;
                                    switch(lookahead){
                                      case 'e':
                                        lookahead = advance(lexer);
                                        lexer->mark_end(lexer);
                                        {
                                          static const TokenType type_array[] = { LIBRARY_CONSTANT_STANDARD, 0 };
                                          type = type_array;
                                        }
                                        break;
                                      default:
                                        break;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      case 'l':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'n':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'x':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { BASE_SPECIFIER_HEX, 0 };
      type = type_array;
    }
    switch(lookahead){
      case 'n':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { RESERVED_XNOR, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { RESERVED_XOR, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '0':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '1':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
              type = type_array;
            }
            switch(lookahead){
              case 'z':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { LIBRARY_TYPE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case '\r':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { DIRECTIVE_NEWLINE, 0 };
      type = type_array;
    }
    switch(lookahead){
      case '\n':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { DIRECTIVE_NEWLINE, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case '\n':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { DIRECTIVE_NEWLINE, 0 };
      type = type_array;
    }
    switch(lookahead){
      case '\r':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { DIRECTIVE_NEWLINE, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case '`':
    lookahead = advance(lexer);
    lexer->mark_end(lexer);
    {
      static const TokenType type_array[] = { DELIMITER_GRAVE_ACCENT, 0 };
      type = type_array;
    }
    break;
  case '<':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case '>':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { DELIMITER_BOX, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case '-':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case '-':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LINE_COMMENT_START, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case '/':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case '*':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { BLOCK_COMMENT_START, 0 };
          type = type_array;
        }
        break;
      default:
        break;
    }
    break;
  case '"':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case '?':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '?':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case '=':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case '/':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '=':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case '<':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              case '=':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case '>':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              case '=':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'a':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'b':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 's':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'o':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'n':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '"':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'x':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'n':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case '"':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '=':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '/':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '=':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '<':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          case '=':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case '>':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          case '=':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 's':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'l':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'l':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              case 'r':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'm':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case '+':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '-':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '&':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '*':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
              type = type_array;
            }
            break;
          case '*':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '"':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'm':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'o':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'd':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case '"':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { TOKEN_OPERATOR_SYMBOL, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case '0':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case '1':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'u':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'z':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'w':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'l':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      case 'h':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { STRING_LITERAL_STD_LOGIC_START, 0 };
          type = type_array;
        }
        switch(lookahead){
          case '"':
            lookahead = advance(lexer);
            lexer->mark_end(lexer);
            {
              static const TokenType type_array[] = { TOKEN_STRING_LITERAL_STD_LOGIC, 0 };
              type = type_array;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'h':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'i':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'g':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'h':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { ATTRIBUTE_FUNCTION, ATTRIBUTE_VALUE, 0 };
                  type = type_array;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 't':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_CHARACTER, 0 };
          type = type_array;
        }
        break;
      case 'r':
        lookahead = advance(lexer);
        lexer->mark_end(lexer);
        {
          static const TokenType type_array[] = { LIBRARY_CONSTANT_UNIT, 0 };
          type = type_array;
        }
        switch(lookahead){
          case 'e':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'a':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'd':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                      type = type_array;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'w':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'i':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'x':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case '_':
                lookahead = advance(lexer);
                lexer->mark_end(lexer);
                {
                  static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                  type = type_array;
                }
                switch(lookahead){
                  case 'r':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'e':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'a':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'd':
                                lookahead = advance(lexer);
                                lexer->mark_end(lexer);
                                {
                                  static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                  type = type_array;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  case 'w':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'r':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'i':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 't':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'e':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'q':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'i':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'e':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 't':
                    lookahead = advance(lexer);
                    lexer->mark_end(lexer);
                    {
                      static const TokenType type_array[] = { ATTRIBUTE_SIGNAL, 0 };
                      type = type_array;
                    }
                    switch(lookahead){
                      case '_':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { IDENTIFIER_EXPECTING_LETTER, 0 };
                          type = type_array;
                        }
                        switch(lookahead){
                          case 'n':
                            lookahead = advance(lexer);
                            type = 0;
                            switch(lookahead){
                              case 'a':
                                lookahead = advance(lexer);
                                type = 0;
                                switch(lookahead){
                                  case 'n':
                                    lookahead = advance(lexer);
                                    lexer->mark_end(lexer);
                                    {
                                      static const TokenType type_array[] = { LIBRARY_CONSTANT, 0 };
                                      type = type_array;
                                    }
                                    break;
                                  default:
                                    break;
                                }
                                break;
                              default:
                                break;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      case 'n':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'a':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'n':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'f':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'j':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'u':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 's':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 't':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'i':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'f':
                        lookahead = advance(lexer);
                        type = 0;
                        switch(lookahead){
                          case 'y':
                            lookahead = advance(lexer);
                            lexer->mark_end(lexer);
                            {
                              static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                              type = type_array;
                            }
                            break;
                          default:
                            break;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  case 'z':
    lookahead = advance(lexer);
    type = 0;
    switch(lookahead){
      case 'e':
        lookahead = advance(lexer);
        type = 0;
        switch(lookahead){
          case 'r':
            lookahead = advance(lexer);
            type = 0;
            switch(lookahead){
              case 'o':
                lookahead = advance(lexer);
                type = 0;
                switch(lookahead){
                  case 'f':
                    lookahead = advance(lexer);
                    type = 0;
                    switch(lookahead){
                      case 'p':
                        lookahead = advance(lexer);
                        lexer->mark_end(lexer);
                        {
                          static const TokenType type_array[] = { LIBRARY_FUNCTION, 0 };
                          type = type_array;
                        }
                        break;
                      default:
                        break;
                    }
                    break;
                  default:
                    break;
                }
                break;
              default:
                break;
            }
            break;
          default:
            break;
        }
        break;
      default:
        break;
    }
    break;
  default:
    break;
}
//------------------------------------------------------------------------------
