classTokenStream
final class TokenStream
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Tokens read one at a time, with one token of lookahead.
Methods§
public function __construct(private non-empty-list<Token> $tokens)Parameters
$tokens | non-empty-list<Token> | The tokens, ending with an end-of-file token |
public function peek(): Tokenpublic function next(): TokenTakes the next token.
Returns
Token The token taken; the end-of-file token is taken again and againTest cases 13
RuleReaderTest::testHeadcallsRuleReaderTest::testHeadRejectsABadAliascallsRuleReaderTest::testHeadRejectsAMissingArrowcallsRuleReaderTest::testHeadRejectsAMissingArrowAfterTheAliascallsRuleReaderTest::testHeadRejectsAnUnclosedAliascallsRuleReaderTest::testReadcallsRuleReaderTest::testReadAcceptsAnEmptyRightHandSidecallsRuleReaderTest::testReadRejectsACompoundAtTheStartcallsRuleReaderTest::testReadRejectsALowerCaseCompoundcallsRuleReaderTest::testReadRejectsAnIllegalCharactercallsRuleReaderTest::testReadRejectsTheEndOfTheFilecallsTokenStreamTest::testEofcallsTokenStreamTest::testNextcalls
Called from 16
- method-call LemonParser\Syntax\DeclarationReader::read() packages/lemon-parser/src/Syntax/DeclarationReader.php:52
- method-call LemonParser\Syntax\DeclarationReader::argument() packages/lemon-parser/src/Syntax/DeclarationReader.php:90
- method-call LemonParser\Syntax\DeclarationReader::readDestructor() packages/lemon-parser/src/Syntax/DeclarationReader.php:117
- method-call LemonParser\Syntax\DeclarationReader::readType() packages/lemon-parser/src/Syntax/DeclarationReader.php:140
- method-call LemonParser\Syntax\DeclarationReader::readTokenClass() packages/lemon-parser/src/Syntax/DeclarationReader.php:163
- method-call LemonParser\Syntax\GrammarReader::read() packages/lemon-parser/src/Syntax/GrammarReader.php:52
- method-call LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:114
- method-call LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:125
- method-call LemonParser\Syntax\RuleReader::read() packages/lemon-parser/src/Syntax/RuleReader.php:38
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:72
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:79
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:83
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:87
- method-call LemonParser\Syntax\RuleReader::alias() packages/lemon-parser/src/Syntax/RuleReader.php:128
- method-call LemonParser\Syntax\RuleReader::alias() packages/lemon-parser/src/Syntax/RuleReader.php:132
- method-call LemonParser\Syntax\SymbolListReader::untilPeriod() packages/lemon-parser/src/Syntax/SymbolListReader.php:158
Calls 2
- method-call TokenStream::peek() line 43
- function-call
countline 44
public function eof(): boolReports whether the file has ended.
Returns
bool True at the end-of-file tokenTest cases 3
Called from 1
Calls 2
- method-call TokenStream::peek() line 58
- class-const TokenKind::End() line 58
Private surface 2§
Implementation details, listed for orientation only.
private int $position = 0private non-empty-list<Token> $tokensTest cases 54§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 3
Other tests reaching this symbol 51
LemonGrammarCompilerTestcallsLemonGrammarReaderTestcallsParserTestcallsDeclarationReaderTest::testArgumentcallsDeclarationReaderTest::testArgumentRejectsPunctuationcallsDeclarationReaderTest::testReadcallsDeclarationReaderTest::testReadDestructorcallsDeclarationReaderTest::testReadDestructorRejectsAMissingSymbolcallsDeclarationReaderTest::testReadRejectsAKeywordThatIsNotAWordcallsDeclarationReaderTest::testReadRejectsAnUnknownKeywordcallsDeclarationReaderTest::testReadTokenClasscallsDeclarationReaderTest::testReadTokenClassRejectsAKnownNamecallsDeclarationReaderTest::testReadTokenClassRejectsATerminalNamecallsDeclarationReaderTest::testReadTypecallsDeclarationReaderTest::testReadTypeRejectsAMissingSymbolcallsDeclarationReaderTest::testReadTypeRejectsASecondTypecallsGrammarReaderTest::testPrecedencecallsGrammarReaderTest::testPrecedenceRejectsAMissingClosercallsGrammarReaderTest::testPrecedenceRejectsAMissingRulecallsGrammarReaderTest::testPrecedenceRejectsANonterminalcallsGrammarReaderTest::testPrecedenceRejectsASecondMarkcallsGrammarReaderTest::testReadcallsGrammarReaderTest::testReadRejectsAStrayTokencallsRuleReaderTest::testAliascallsRuleReaderTest::testAliasRejectsABadNamecallsRuleReaderTest::testAliasRejectsAMissingClosercallsRuleReaderTest::testHeadcallsRuleReaderTest::testHeadRejectsABadAliascallsRuleReaderTest::testHeadRejectsAMissingArrowcallsRuleReaderTest::testHeadRejectsAMissingArrowAfterTheAliascallsRuleReaderTest::testHeadRejectsAnUnclosedAliascallsRuleReaderTest::testReadcallsRuleReaderTest::testReadAcceptsAnEmptyRightHandSidecallsRuleReaderTest::testReadRejectsACompoundAtTheStartcallsRuleReaderTest::testReadRejectsALowerCaseCompoundcallsRuleReaderTest::testReadRejectsAnIllegalCharactercallsRuleReaderTest::testReadRejectsTheEndOfTheFilecallsSymbolListReaderTest::testClassTokenscallsSymbolListReaderTest::testClassTokensRejectsANonterminalcallsSymbolListReaderTest::testFallbackscallsSymbolListReaderTest::testFallbacksRejectsANonterminalcallsSymbolListReaderTest::testFallbacksRejectsASecondFallbackForATokencallsSymbolListReaderTest::testRankedcallsSymbolListReaderTest::testRankedRejectsANonterminalcallsSymbolListReaderTest::testTokenscallsSymbolListReaderTest::testTokensRejectsANonterminalcallsSymbolListReaderTest::testUntilPeriodcallsSymbolListReaderTest::testUntilPeriodRejectsTheEndOfTheFilecallsSymbolListReaderTest::testWildcardcallsSymbolListReaderTest::testWildcardRejectsANonterminalcallsSymbolListReaderTest::testWildcardRejectsASecondTokencalls
Relations§
Instantiated in 1
Method calls 17
- method-call LemonParser\Syntax\DeclarationReader::read() packages/lemon-parser/src/Syntax/DeclarationReader.php:52
- method-call LemonParser\Syntax\DeclarationReader::argument() packages/lemon-parser/src/Syntax/DeclarationReader.php:90
- method-call LemonParser\Syntax\DeclarationReader::readDestructor() packages/lemon-parser/src/Syntax/DeclarationReader.php:117
- method-call LemonParser\Syntax\DeclarationReader::readType() packages/lemon-parser/src/Syntax/DeclarationReader.php:140
- method-call LemonParser\Syntax\DeclarationReader::readTokenClass() packages/lemon-parser/src/Syntax/DeclarationReader.php:163
- method-call LemonParser\Syntax\GrammarReader::read() packages/lemon-parser/src/Syntax/GrammarReader.php:51
- method-call LemonParser\Syntax\GrammarReader::read() packages/lemon-parser/src/Syntax/GrammarReader.php:52
- method-call LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:114
- method-call LemonParser\Syntax\GrammarReader::precedence() packages/lemon-parser/src/Syntax/GrammarReader.php:125
- method-call LemonParser\Syntax\RuleReader::read() packages/lemon-parser/src/Syntax/RuleReader.php:38
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:72
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:79
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:83
- method-call LemonParser\Syntax\RuleReader::head() packages/lemon-parser/src/Syntax/RuleReader.php:87
- method-call LemonParser\Syntax\RuleReader::alias() packages/lemon-parser/src/Syntax/RuleReader.php:128
- method-call LemonParser\Syntax\RuleReader::alias() packages/lemon-parser/src/Syntax/RuleReader.php:132
- method-call LemonParser\Syntax\SymbolListReader::untilPeriod() packages/lemon-parser/src/Syntax/SymbolListReader.php:158
Type declarations 16
- type LemonParser\Syntax\DeclarationReader packages/lemon-parser/src/Syntax/DeclarationReader.php:50
- type LemonParser\Syntax\DeclarationReader packages/lemon-parser/src/Syntax/DeclarationReader.php:88
- type LemonParser\Syntax\DeclarationReader packages/lemon-parser/src/Syntax/DeclarationReader.php:115
- type LemonParser\Syntax\DeclarationReader packages/lemon-parser/src/Syntax/DeclarationReader.php:138
- type LemonParser\Syntax\DeclarationReader packages/lemon-parser/src/Syntax/DeclarationReader.php:161
- type LemonParser\Syntax\GrammarReader packages/lemon-parser/src/Syntax/GrammarReader.php:45
- type LemonParser\Syntax\GrammarReader packages/lemon-parser/src/Syntax/GrammarReader.php:112
- type LemonParser\Syntax\RuleReader packages/lemon-parser/src/Syntax/RuleReader.php:32
- type LemonParser\Syntax\RuleReader packages/lemon-parser/src/Syntax/RuleReader.php:70
- type LemonParser\Syntax\RuleReader packages/lemon-parser/src/Syntax/RuleReader.php:126
- type LemonParser\Syntax\SymbolListReader packages/lemon-parser/src/Syntax/SymbolListReader.php:29
- type LemonParser\Syntax\SymbolListReader packages/lemon-parser/src/Syntax/SymbolListReader.php:53
- type LemonParser\Syntax\SymbolListReader packages/lemon-parser/src/Syntax/SymbolListReader.php:82
- type LemonParser\Syntax\SymbolListReader packages/lemon-parser/src/Syntax/SymbolListReader.php:106
- type LemonParser\Syntax\SymbolListReader packages/lemon-parser/src/Syntax/SymbolListReader.php:130
- type LemonParser\Syntax\SymbolListReader packages/lemon-parser/src/Syntax/SymbolListReader.php:154