🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ast::Lexer类 参考

#include <Lexer.hpp>

Public 类型

enum  ETokenType {
  eEndOfFile , eError , eNumber , eString ,
  eIdentifier , eTrue , eFalse , eNullLiteral ,
  ePlus , eMinus , eStar , eSlash ,
  ePercent , eCaret , eTilde , eEqual ,
  eColonEqual , eEqualAmpersand , eEqualEqual , eBang ,
  eBangEqual , eLess , eLessEqual , eLessLess ,
  eGreater , eGreaterEqual , eGreaterGreater , eGreaterGreaterGreater ,
  eAmpersand , ePipe , eXor , eAndAnd ,
  eOrOr , eLeftParen , eRightParen , eLeftBrace ,
  eRightBrace , eLeftBracket , eRightBracket , eComma ,
  eDot , eSemicolon , eColon , eQuestion ,
  eNewline , eAt , eBegin , eEnd ,
  eIf , eElseif , eElse , eWhile ,
  eFor , eIn
}
 

Public 成员函数

 Lexer (Scanner *scanner)
 
ETokenType getNextToken ()
 
StringView getCurrentLexeme () const
 
const char * getTokenStart () const
 
const char * getTokenEnd () const
 
void skipWhitespace ()
 

详细描述

词法分析器

成员枚举类型说明

◆ ETokenType

令牌类型枚举

枚举值
eEndOfFile 

文件结束

eError 

错误令牌

eNumber 

数字字面量

eString 

字符串字面量

eIdentifier 

标识符

eTrue 

布尔值true

eFalse 

布尔值false

eNullLiteral 

空值null

ePlus 
eMinus 
eStar 
eSlash 

/

ePercent 

%

eCaret 

^

eTilde 

~ (按位取反)

eEqual 

=

eColonEqual 

:= (延迟赋值运算符)

eEqualAmpersand 

=& (绑定赋值运算符)

eEqualEqual 

==

eBang 

!

eBangEqual 

!=

eLess 

<

eLessEqual 

<=

eLessLess 

<< (逻辑/算术左移)

eGreater 

eGreaterEqual 

>=

eGreaterGreater 

‍(算术右移)

eGreaterGreaterGreater 

‍(逻辑右移)

eAmpersand 

& (按位与/逻辑与)

ePipe 

| (按位或/逻辑或)

eXor 

⊻ (按位异或)

eAndAnd 

&& (逻辑与)

eOrOr 

|| (逻辑或)

eLeftParen 

(

eRightParen 

)

eLeftBrace 

{

eRightBrace 

}

eLeftBracket 

[

eRightBracket 

]

eComma 

,

eDot 
eSemicolon 

;

eColon 

:

eQuestion 

?

eNewline 


(换行符)

eAt 

@ (宏调用前缀)

eBegin 

begin

eEnd 

end

eIf 

if

eElseif 

elseif

eElse 

else

eWhile 

while

eFor 

for

eIn 

in (for循环中使用)

成员函数说明

◆ skipWhitespace()

void ast::Lexer::skipWhitespace ( )

获取当前行号

跳过空白字符


该类的文档由以下文件生成: