Class Token
  
  Represents a lexical token of the language. This is an abstract class that particular language implementations must extend
to define language-specific token types
 
  
  
    Inheritance
    System.Object
    Token
      
      
      
   
  
    Inherited Members
    
      System.Object.Equals(System.Object)
    
    
      System.Object.Equals(System.Object, System.Object)
    
    
      System.Object.GetHashCode()
    
    
      System.Object.GetType()
    
    
      System.Object.MemberwiseClone()
    
    
      System.Object.ReferenceEquals(System.Object, System.Object)
    
   
  
  Assembly: NFX.dll
  Syntax
  
    public abstract class Token
   
  Constructors
  
  
  
  
  Token(ILexer, SourcePosition, SourcePosition, String)
  
  
  Declaration
  
    public Token(ILexer lexer, SourcePosition startPos, SourcePosition endPos, string text)
   
  Parameters
  
  
  
  
  Token(ILexer, SourcePosition, SourcePosition, String, Object)
  
  
  Declaration
  
    public Token(ILexer lexer, SourcePosition startPos, SourcePosition endPos, string text, object value)
   
  Parameters
  
  Fields
  
  
  
  EndPosition
  
  
  Declaration
  
    public readonly SourcePosition EndPosition
   
  Field Value
  
  
  
  Lexer
  
  
  Declaration
  
    public readonly ILexer Lexer
   
  Field Value
  
  
  
  StartPosition
  
  
  Declaration
  
    public readonly SourcePosition StartPosition
   
  Field Value
  
  
  
  Text
  
  
  Declaration
  
    public readonly string Text
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  
  
  Value
  
  
  Declaration
  
    public readonly object Value
   
  Field Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Object | 
         | 
      
    
  
  Properties
  
  
  
  
  IsBOF
  Indicates whether this token indicates an BEGINNING-OF-FILE condition
 
  
  Declaration
  
    public bool IsBOF { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  
  Indicates whether this token represents a comment
 
  
  Declaration
  
    public bool IsComment { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsDirective
  Indicates whether this token represents a directive
 
  
  Declaration
  
    public bool IsDirective { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsEOF
  Indicates whether this token indicates an END-OF-FILE condition
 
  
  Declaration
  
    public bool IsEOF { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsIdentifier
  Indicates whether this token represents an identifier
 
  
  Declaration
  
    public bool IsIdentifier { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsKeyword
  Indicates whether this token represents a language keyword
 
  
  Declaration
  
    public bool IsKeyword { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsLiteral
  Indicates whether this token represents a literal
 
  
  Declaration
  
    public bool IsLiteral { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsNonLanguage
  This property is needed due to the fact that language lexers may be used to analyze special supersets of regular
language grammars i.e. for pattern matches, template parser etc. Code compilers may elect to throw errors when this property is true.
Returns true for tokens that are not part of the valid language grammar, however they exist for other reasons,
for example - for pattern capture match analysis, or for template processing
 
  
  Declaration
  
    public abstract bool IsNonLanguage { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsNumericLiteral
  Indicates whether this token represents a literal, which is a numeric literal (i.e. int, double)
This flag is useful for pattern searches that look for particular constant values in numbers (i.e. year = 2000)
 
  
  Declaration
  
    public abstract bool IsNumericLiteral { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsOperator
  Indicates whether this token represents an operator
 
  
  Declaration
  
    public bool IsOperator { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsPrimary
  Returns true for tokens that are primary part of the language, not control, metadata, directive, comment etc...
For example BOF,EOF markers are not primary part of the language, compiler directives, comments are not either.
This property is useful for pattern searches, when comments and other non-primary tokens need to be quickly skipped
 
  
  Declaration
  
    public abstract bool IsPrimary { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsSymbol
  Indicates whether this token represents a symbol
 
  
  Declaration
  
    public bool IsSymbol { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  IsTextualLiteral
  Indicates whether this token represents a literal, which is a string or a character sequence.
This flag is useful for pattern searches that examine comments and strings for sub-patterns
 
  
  Declaration
  
    public abstract bool IsTextualLiteral { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Boolean | 
         | 
      
    
  
  
  
  
  Kind
  Provides language-agnostic classification for token type
 
  
  Declaration
  
    public abstract TokenKind Kind { get; }
   
  Property Value
  
  
  
  
  Language
  Returns language that this token is a part of
 
  
  Declaration
  
    public abstract Language Language { get; }
   
  Property Value
  
  
  
  
  OrdinalType
  Returns token type as a grammar-agnostic ordinal
 
  
  Declaration
  
    public abstract int OrdinalType { get; }
   
  Property Value
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.Int32 | 
         | 
      
    
  
  Methods
  
  
  
  
  ToString()
  
  
  Declaration
  
    public override string ToString()
   
  Returns
  
    
      
        | Type | 
        Description | 
      
    
    
      
        | System.String | 
         | 
      
    
  
  Overrides
  System.Object.ToString()
  Extension Methods