Oblivion Mod:Oblivion Token Types

The UESPWiki – Your source for The Elder Scrolls since 1995
Jump to: navigation, search

The CTokenType class holds a single custom token definition as loaded from a text file. These definitions will be used to create tokens by the tokenizer for use in the parser.

CTokenType[edit]

This class is very simple and is mainly composed of three members:

  class CTokenType {
     dword   m_ID;       /* Unique ID for this token */
     string  m_Name;     /* Token name */
     dword   m_Flags;    /* Token flags */
  };

The flags member is a bit field with the possible values:

  • Keep: Store token value when tokenizing (used for strings, identifiers, etc...).
  • Simple: Do not store the token value (most tokens).
  • Ignore: Ignore token (not saved to the token stream, like comments).
  • TrimFirst: Remove the first character in the token value (for quoted strings).
  • TrimLast: Remove the last character in the token value (for quoted strings).
  • EndToken: Identifies the token that ends a token sequence (stops parsing).


Data File Format[edit]

Custom tokens are defined from a text file with the following format:

  Tokens
     [TokenName] = [ID], [Option1], ... [OptionN]
     ...
  End

The [TokenName] is a unique string identifying the token. [ID] is a unique integer value which can also be used to identify the token. Multiple options can be specified after the ID and can be any of:

  • keep
  • simple
  • ignore
  • trimlast
  • trimfirst
  • endtoken


Oblivion Token File[edit]

The following token definitions can be used for Oblivion scripts:

  Tokens
     Unknown      = 0, keep
     LBracket     = 1, simple
     RBracket     = 2, simple
     AddOp        = 3, keep
     MultOp       = 4, keep
     RelOp        = 5, keep
     BoolOp       = 6, keep
     Comma        = 7, ignore
     String       = 16, keep, trimfirst, trimlast
     Identifier   = 17, keep
     If           = 18, simple
     Elseif       = 19, simple
     Else         = 20, simple
     Endif        = 21, simple
     Set          = 22, simple
     Scriptname   = 23, simple
     Begin        = 24, simple
     End          = 25, simple
     Comment      = 26, ignore
     EndLine      = 27, simple  
     Integer      = 28, keep
     Float        = 29, keep
     EndofProgram = 30, simple, endtoken
  End