로딩중...
검색중...
일치하는것 없음
by::stelaTokenScan 클래스 참조

Base class for token scanning strategies 더 자세히 ...

#include <stelaTokenScan.hpp>

by::stelaTokenScan에 대한 상속 다이어그램 :
by::stelaTokenScanable by::stelaIndentScan by::stelaNormalScan

Public 멤버 함수

virtual nint onScan (stelaParser &ps, ZZSTYPE *yylval, ZZLTYPE *loc, zzscan_t yyscanner, nbool &isBypass) override
 Pure virtual method for concrete token scanning implementations.
 
nint onScan (stelaParser &ps, ZZSTYPE *val, ZZLTYPE *loc, zzscan_t scanner)
 Default entry point for token scanning.
 
virtual nint onScan (stelaParser &ps, ZZSTYPE *yylval, ZZLTYPE *loc, zzscan_t yyscanner, nbool &isBypass)=0
 Pure virtual method for concrete token scanning implementations.
 
- by::stelaTokenScanable(으)로부터 상속된 Public 멤버 함수
nint onScan (stelaParser &ps, ZZSTYPE *val, ZZLTYPE *loc, zzscan_t scanner)
 Default entry point for token scanning.
 

상세한 설명

Base class for token scanning strategies

As mentioned in stelaParser, the parser must dynamically change scan mode to precisely measure indentation. tokenScan handles one such scan mode strategy.

Command Tokens

Among tokens exist command tokens like SCAN_AGAIN, SCAN_EXIT that give commands to the scanner or parser. See zztokenType enum in stelaParser.hpp for details.

isBypass

IndentScan ignores most tokens and focuses solely on counting whitespace. However, if multiple tokens were pushed from the previous line, it operates in bypass mode internally. During this time, it skips indentation counting and simply reads and returns the stored tokens.

멤버 함수 문서화

◆ onScan() [1/3]

nint by::stelaTokenScanable::onScan ( stelaParser & ps,
ZZSTYPE * val,
ZZLTYPE * loc,
zzscan_t scanner )

Default entry point for token scanning.

This non-virtual method acts as a wrapper that internally dispatches to the pure virtual onScan method, which must be implemented by concrete scanner strategies.

매개변수
psThe stelaParser instance.
valThe YYSTYPE value pointer for the token.
locThe YYLTYPE location pointer for the token.
scannerThe Flex scanner instance.
반환값
The token ID.

◆ onScan() [2/3]

nint by::stelaTokenScan::onScan ( stelaParser & ps,
ZZSTYPE * yylval,
ZZLTYPE * loc,
zzscan_t yyscanner,
nbool & isBypass )
overridevirtual

Pure virtual method for concrete token scanning implementations.

매개변수
psThe stelaParser instance.
yylvalThe YYSTYPE value pointer for the token.
locThe YYLTYPE location pointer for the token.
yyscannerThe Flex scanner instance.
isBypassFlag indicating if indentation bypass is active.
반환값
The token ID.

by::stelaTokenScanable를 구현.

by::stelaNormalScan, by::stelaIndentScan에서 재구현되었습니다.

◆ onScan() [3/3]

virtual nint by::stelaTokenScanable::onScan ( stelaParser & ps,
ZZSTYPE * yylval,
ZZLTYPE * loc,
zzscan_t yyscanner,
nbool & isBypass )
virtual

Pure virtual method for concrete token scanning implementations.

매개변수
psThe stelaParser instance.
yylvalThe YYSTYPE value pointer for the token.
locThe YYLTYPE location pointer for the token.
yyscannerThe Flex scanner instance.
isBypassFlag indicating if indentation bypass is active.
반환값
The token ID.

by::stelaTokenScanable를 구현.


이 클래스에 대한 문서화 페이지는 다음의 파일들로부터 생성되었습니다.: