Data Fields
LexExprToken Struct Reference

Lexer token. More...

#include <expressions.h>

Data Fields

ParserPosition start
size_t len
 Option name length. More...
LexExprTokenType type
 Suggested type for parsing incorrect code. More...
union {
   struct {
      ExprComparisonType   type
 Comparison type. More...
      ExprCaseCompareStrategy   ccs
 Case comparison strategy. More...
      bool   inv
 True if comparison is to be inverted. More...
   }   cmp
 For kExprLexComparison. More...
   struct {
enum  { kExprLexMulMul, kExprLexMulDiv, kExprLexMulMod }
      enum LexExprToken:: { ... } ::   type
 Multiplication type. More...
   }   mul
 For kExprLexMultiplication. More...
   struct {
      bool   closing
 True if bracket/etc is a closing one. More...
   }   brc
 For brackets/braces/parenthesis. More...
   struct {
      int   name
 Register name, may be -1 if name not present. More...
   }   reg
 For kExprLexRegister. More...
   struct {
      bool   closed
 True if quote was closed. More...
   }   str
 For kExprLexSingleQuotedString and kExprLexDoubleQuotedString. More...
   struct {
      const char *   name
 Option name start. More...
      size_t   len
 Option name length. More...
      ExprOptScope   scope
 Option scope: &l:, &g: or not specified. More...
   }   opt
 Option properties. More...
   struct {
      ExprVarScope   scope
 Scope character or 0 if not present. More...
      bool   autoload
 Has autoload characters. More...
   }   var
 For kExprLexPlainIdentifier. More...
   struct {
      LexExprTokenType   type
 Suggested type for parsing incorrect code. More...
      const char *   msg
 Error message. More...
   }   err
 For kExprLexInvalid. More...
   struct {
      union {
         float_T   floating
         uvarnumber_T   integer
      }   val
 Number value. More...
      uint8_t   base
 Base: 2, 8, 10 or 16. More...
      bool   is_float
 True if number is a floating-point. More...
   }   num
 For kExprLexNumber. More...
   struct {
      ExprAssignmentType   type
   }   ass
 For kExprLexAssignment. More...
 Additional data, if needed. More...

Detailed Description

Lexer token.

Field Documentation

struct { ... } LexExprToken::ass

For kExprLexAssignment.

bool LexExprToken::autoload

Has autoload characters.

uint8_t LexExprToken::base

Base: 2, 8, 10 or 16.

struct { ... } LexExprToken::brc

For brackets/braces/parenthesis.

ExprCaseCompareStrategy LexExprToken::ccs

Case comparison strategy.

bool LexExprToken::closed

True if quote was closed.

bool LexExprToken::closing

True if bracket/etc is a closing one.

struct { ... } LexExprToken::cmp

For kExprLexComparison.

union { ... } LexExprToken::data

Additional data, if needed.

struct { ... } LexExprToken::err

For kExprLexInvalid.

float_T LexExprToken::floating
uvarnumber_T LexExprToken::integer
bool LexExprToken::inv

True if comparison is to be inverted.

bool LexExprToken::is_float

True if number is a floating-point.

size_t LexExprToken::len

Option name length.

const char* LexExprToken::msg

Error message.

struct { ... } LexExprToken::mul

For kExprLexMultiplication.

int LexExprToken::name

Register name, may be -1 if name not present.

const char* LexExprToken::name

Option name start.

struct { ... } LexExprToken::num

For kExprLexNumber.

struct { ... } LexExprToken::opt

Option properties.

struct { ... } LexExprToken::reg

For kExprLexRegister.

ExprOptScope LexExprToken::scope

Option scope: &l:, &g: or not specified.

ExprVarScope LexExprToken::scope

Scope character or 0 if not present.

ParserPosition LexExprToken::start
struct { ... } LexExprToken::str

For kExprLexSingleQuotedString and kExprLexDoubleQuotedString.

LexExprTokenType LexExprToken::type

Suggested type for parsing incorrect code.

ExprComparisonType LexExprToken::type

Comparison type.

enum { ... } LexExprToken::type

Multiplication type.

ExprAssignmentType LexExprToken::type
union { ... } LexExprToken::val

Number value.

struct { ... } LexExprToken::var

For kExprLexPlainIdentifier.

The documentation for this struct was generated from the following file: