Tokenizer
in package
Tokenizer (Lexer) for Beancount files.
This class converts Beancount text content into a sequence of tokens that can be processed by the Parser.
Tags
Table of Contents
Constants
- DIRECTIVE_KEYWORDS = ['open', 'close', 'balance', 'pad', 'note', 'document', 'commodity', 'price', 'event', 'query', 'custom', 'txn']
- VALID_ACCOUNT_TYPES = ['Assets', 'Liabilities', 'Equity', 'Income', 'Expenses']
Properties
Methods
- __construct() : mixed
- Creates a new Tokenizer instance.
- tokenize() : array<int, TokenInterface>
- isAtEnd() : bool
- reset() : void
- scanToken() : TokenInterface|null
- advance() : string
- isAccountType() : bool
- isAtCommentStart() : bool
- isValidCurrencyCode() : bool
- isWhitespaceOrEOL() : bool
- peek() : string
- scanComment() : Token
- scanCost() : Token
- scanDateOrNumber() : Token
- scanIdentifier() : TokenInterface
- scanLink() : Token
- scanNumber() : Token
- scanPrice() : Token
- scanString() : Token
- scanTag() : Token
Constants
DIRECTIVE_KEYWORDS
private
mixed
DIRECTIVE_KEYWORDS
= ['open', 'close', 'balance', 'pad', 'note', 'document', 'commodity', 'price', 'event', 'query', 'custom', 'txn']
VALID_ACCOUNT_TYPES
private
mixed
VALID_ACCOUNT_TYPES
= ['Assets', 'Liabilities', 'Equity', 'Income', 'Expenses']
Properties
$column
protected
int
$column
= 1
$input
protected
string
$input
$line
protected
int
$line
= 1
$position
protected
int
$position
= 0
Methods
__construct()
Creates a new Tokenizer instance.
public
__construct(string $input) : mixed
Parameters
- $input : string
-
The Beancount content to tokenize
tokenize()
public
tokenize() : array<int, TokenInterface>
Return values
array<int, TokenInterface>isAtEnd()
protected
isAtEnd() : bool
Return values
boolreset()
protected
reset() : void
scanToken()
protected
scanToken() : TokenInterface|null
Return values
TokenInterface|nulladvance()
private
advance() : string
Return values
stringisAccountType()
private
isAccountType(string $value) : bool
Parameters
- $value : string
Return values
boolisAtCommentStart()
private
isAtCommentStart() : bool
Return values
boolisValidCurrencyCode()
private
isValidCurrencyCode(string $value) : bool
Parameters
- $value : string
Return values
boolisWhitespaceOrEOL()
private
isWhitespaceOrEOL(string $char) : bool
Parameters
- $char : string
Return values
boolpeek()
private
peek([int $offset = 0 ]) : string
Parameters
- $offset : int = 0
Return values
stringscanComment()
private
scanComment() : Token
Return values
TokenscanCost()
private
scanCost() : Token
Return values
TokenscanDateOrNumber()
private
scanDateOrNumber() : Token
Return values
TokenscanIdentifier()
private
scanIdentifier() : TokenInterface
Return values
TokenInterfacescanLink()
private
scanLink() : Token
Return values
TokenscanNumber()
private
scanNumber() : Token
Return values
TokenscanPrice()
private
scanPrice() : Token
Return values
TokenscanString()
private
scanString() : Token
Return values
TokenscanTag()
private
scanTag() : Token