The Labs \ Source Viewer \ SSCLI \ Microsoft.JScript \ JSToken

  1. // ==++==
  2. //
  3. //
  4. // Copyright (c) 2006 Microsoft Corporation. All rights reserved.
  5. //
  6. // The use and distribution terms for this software are contained in the file
  7. // named license.txt, which can be found in the root of this distribution.
  8. // By using this software in any fashion, you are agreeing to be bound by the
  9. // terms of this license.
  10. //
  11. // You must not remove this notice, or any other, from this software.
  12. //
  13. //
  14. // ==--==
  15. //***************************************************************************************
  16. // JSToken
  17. //
  18. // Items in this enumeration are arranged so to maximize performance in the parser.
  19. // Values in switches are consecutive and operators are together to allow indexing in array
  20. // and range check. Please, try to be consistent when adding new values or changing the
  21. // Parser, also see the static functions in JSScanner that deal with JSTokens
  22. //***************************************************************************************
  23. namespace Microsoft.JScript
  24. {
  25.    
  26.     public enum JSToken : int
  27.     {
  28.         None = -1,
  29.         EndOfFile,
  30.        
  31.         // main statement switch
  32.         If,
  33.         For,
  34.         Do,
  35.         While,
  36.         Continue,
  37.         Break,
  38.         Return,
  39.         Import,
  40.         With,
  41.         Switch,
  42.         Throw,
  43.         Try,
  44.         Package,
  45.         Internal,
  46.         Abstract,
  47.         Public,
  48.         Static,
  49.         Private,
  50.         Protected,
  51.         Final,
  52.         Event,
  53.         Var,
  54.         Const,
  55.         Class,
  56.        
  57.         // used by both statement and expression switches
  58.         Function,
  59.         LeftCurly,
  60.         // {
  61.         Semicolon,
  62.         // ;
  63.         // main expression switch
  64.         Null,
  65.         True,
  66.         False,
  67.         This,
  68.         Identifier,
  69.         StringLiteral,
  70.         IntegerLiteral,
  71.         NumericLiteral,
  72.        
  73.         LeftParen,
  74.         // (
  75.         LeftBracket,
  76.         // [
  77.         AccessField,
  78.         // .
  79.         // operators
  80.         FirstOp,
  81.         // unary ops
  82.         LogicalNot = FirstOp,
  83.         // !
  84.         BitwiseNot,
  85.         // ~
  86.         Delete,
  87.         Void,
  88.         Typeof,
  89.         Increment,
  90.         // ++
  91.         Decrement,
  92.         // --
  93.         FirstBinaryOp,
  94.         // binary ops
  95.         Plus = FirstBinaryOp,
  96.         // +
  97.         Minus,
  98.         // -
  99.         LogicalOr,
  100.         // ||
  101.         LogicalAnd,
  102.         // &&
  103.         BitwiseOr,
  104.         // |
  105.         BitwiseXor,
  106.         // ^
  107.         BitwiseAnd,
  108.         // &
  109.         Equal,
  110.         // ==
  111.         NotEqual,
  112.         // !=
  113.         StrictEqual,
  114.         // ===
  115.         StrictNotEqual,
  116.         // !==
  117.         GreaterThan,
  118.         // >
  119.         LessThan,
  120.         // <
  121.         LessThanEqual,
  122.         // <=
  123.         GreaterThanEqual,
  124.         // >=
  125.         LeftShift,
  126.         // <<
  127.         RightShift,
  128.         // >>
  129.         UnsignedRightShift,
  130.         // >>>
  131.         Multiply,
  132.         // *
  133.         Divide,
  134.         // /
  135.         Modulo,
  136.         // %
  137.         LastPPOperator = Modulo,
  138.         Instanceof,
  139.         In,
  140.         Assign,
  141.         // =
  142.         PlusAssign,
  143.         // +=
  144.         MinusAssign,
  145.         // -=
  146.         MultiplyAssign,
  147.         // *=
  148.         DivideAssign,
  149.         // /=
  150.         BitwiseAndAssign,
  151.         // &=
  152.         BitwiseOrAssign,
  153.         // |=
  154.         BitwiseXorAssign,
  155.         // ^=
  156.         ModuloAssign,
  157.         // %=
  158.         LeftShiftAssign,
  159.         // >>=
  160.         RightShiftAssign,
  161.         // <<=
  162.         UnsignedRightShiftAssign,
  163.         // <<<=
  164.         LastAssign = UnsignedRightShiftAssign,
  165.         LastBinaryOp = UnsignedRightShiftAssign,
  166.         ConditionalIf,
  167.         // ? // MUST FOLLOW LastBinaryOp
  168.         Colon,
  169.         // :
  170.         Comma,
  171.         // ,
  172.         LastOp = Comma,
  173.        
  174.         // context specific keywords
  175.         Case,
  176.         Catch,
  177.         Debugger,
  178.         Default,
  179.         Else,
  180.         Export,
  181.         Extends,
  182.         Finally,
  183.         Get,
  184.         Implements,
  185.         Interface,
  186.         New,
  187.         Set,
  188.         Super,
  189.         RightParen,
  190.         // )
  191.         RightCurly,
  192.         // }
  193.         RightBracket,
  194.         // ]
  195.         PreProcessorConstant,
  196.         // entity defined defined during preprocessing
  197.         Comment,
  198.         // for authoring
  199.         UnterminatedComment,
  200.         // for authoring
  201.         // js5, js8 and ECMA reserved words
  202.         Assert,
  203.         Boolean,
  204.         Byte,
  205.         Char,
  206.         Decimal,
  207.         Double,
  208.         DoubleColon,
  209.         // ::
  210.         Enum,
  211.         Ensure,
  212.         Float,
  213.         Goto,
  214.         Int,
  215.         Invariant,
  216.         Long,
  217.         Namespace,
  218.         Native,
  219.         Require,
  220.         Sbyte,
  221.         Short,
  222.         Synchronized,
  223.         Transient,
  224.         Throws,
  225.         ParamArray,
  226.         // ...
  227.         Volatile,
  228.         Ushort,
  229.         Uint,
  230.         Ulong,
  231.         Use,
  232.        
  233.         EndOfLine,
  234.         // this is here only because of error recovery, in reality this token is never produced
  235.         PreProcessDirective
  236.     }
  237. }

Developer Fusion