classToken
final class Token
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
One token of a grammar file.
The text is what the token stands for: a directive without its percent sign, a literal decoded, code without its braces, a tag without its angle brackets. The raw spelling is kept only where a directive has several.
Properties§
public TokenKind $kindpublic string $textpublic Location $locationpublic string $raw = ''Methods§
public function is(TokenKind $kind): boolReports whether the token is of a given kind.
Parameters
$kind | TokenKind | Kind to compare with |
Returns
bool True when the kinds matchTest cases 1
TokenTest::testIscalls
Called from 7
- method-call BisonParser\Syntax\DeclarationParser::starts() packages/bison-parser/src/Syntax/DeclarationParser.php:54
- method-call BisonParser\Syntax\DeclarationParser::starts() packages/bison-parser/src/Syntax/DeclarationParser.php:55
- method-call BisonParser\Syntax\DeclarationParser::starts() packages/bison-parser/src/Syntax/DeclarationParser.php:56
- method-call BisonParser\Syntax\SymbolListParser::startsSymbol() packages/bison-parser/src/Syntax/SymbolListParser.php:239
- method-call BisonParser\Syntax\SymbolListParser::kind() packages/bison-parser/src/Syntax/SymbolListParser.php:267
- method-call BisonParser\Syntax\SymbolListParser::kind() packages/bison-parser/src/Syntax/SymbolListParser.php:270
- method-call BisonParser\Syntax\SymbolListParser::kind() packages/bison-parser/src/Syntax/SymbolListParser.php:274
public function isDirective(string $name): boolReports whether the token is a given directive.
Parameters
$name | string | Canonical directive name without the percent sign |
Returns
bool True for that directiveTest cases 1
Calls 1
- class-const TokenKind::Directive() line 55
public function describe(): stringDescribes the token for an error message.
Returns
string The kind, and the text when it helpsTest cases 1
TokenTest::testDescribecalls
Called from 1
Calls 9
- class-const TokenKind::Directive() line 65
- class-const TokenKind::Identifier() line 68
- class-const TokenKind::IdentifierColon() line 68
- function-call
in_arrayline 71 - class-const TokenKind::Colon() line 71
- class-const TokenKind::Equal() line 71
- class-const TokenKind::Pipe() line 71
- class-const TokenKind::Semicolon() line 71
- class-const TokenKind::Section() line 71
Test cases 25§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 3
TokenTest::testDescribecallsTokenTest::testIscallsTokenTest::testIsDirectivecalls
Other tests reaching this symbol 22
BisonGrammarCompilerTestcallsBisonGrammarReaderTestcallsParserTestcallsScannerTest::testScancallsScannerTest::testScanEndsWithoutAnEpiloguecallsScannerTest::testScanKeepsLineDirectivesAtTheStartOfALinecallsDeclarationParserTest::testDirectiveRejectsARuleModifiercallsDeclarationParserTest::testLinecallsDeclarationParserTest::testStartscallsGrammarParserTestcallsRuleParserTest::testParseRejectsAMissingColoncallsSymbolListParserTest::testKindcallsSymbolListParserTest::testStartsSymbolcallsSymbolListParserTest::testSymbolcallsSymbolListParserTest::testSymbolRejectsAnotherTokencallsTokenStreamTest::testAcceptcallsTokenStreamTest::testExpectcallsTokenStreamTest::testExpectRejectsAnotherTokencallsTokenStreamTest::testIscallsTokenStreamTest::testIsDirectivecallsTokenStreamTest::testNextcallsTokenStreamTest::testPeekcalls
Relations§
Instantiated in 18
- new BisonParser\Scanner\Scanner::scan() packages/bison-parser/src/Scanner/Scanner.php:54
- new BisonParser\Scanner\Scanner::scan() packages/bison-parser/src/Scanner/Scanner.php:64
- new BisonParser\Scanner\Scanner::scan() packages/bison-parser/src/Scanner/Scanner.php:65
- new BisonParser\Scanner\Scanner::next() packages/bison-parser/src/Scanner/Scanner.php:113
- new BisonParser\Scanner\Scanner::next() packages/bison-parser/src/Scanner/Scanner.php:120
- new BisonParser\Scanner\Scanner::percent() packages/bison-parser/src/Scanner/Scanner.php:149
- new BisonParser\Scanner\Scanner::percent() packages/bison-parser/src/Scanner/Scanner.php:154
- new BisonParser\Scanner\Scanner::percent() packages/bison-parser/src/Scanner/Scanner.php:157
- new BisonParser\Scanner\Scanner::percent() packages/bison-parser/src/Scanner/Scanner.php:168
- new BisonParser\Scanner\Scanner::identifier() packages/bison-parser/src/Scanner/Scanner.php:191
- new BisonParser\Scanner\Scanner::bracketed() packages/bison-parser/src/Scanner/Scanner.php:223
- new BisonParser\Scanner\Scanner::integer() packages/bison-parser/src/Scanner/Scanner.php:249
- new BisonParser\Scanner\Scanner::literal() packages/bison-parser/src/Scanner/Scanner.php:278
- new BisonParser\Scanner\Scanner::literal() packages/bison-parser/src/Scanner/Scanner.php:288
- new BisonParser\Scanner\Scanner::tag() packages/bison-parser/src/Scanner/Scanner.php:312
- new BisonParser\Scanner\Scanner::tag() packages/bison-parser/src/Scanner/Scanner.php:317
- new BisonParser\Scanner\Scanner::tag() packages/bison-parser/src/Scanner/Scanner.php:326
- new BisonParser\Scanner\Scanner::punctuation() packages/bison-parser/src/Scanner/Scanner.php:366
Method calls 8
- method-call BisonParser\Syntax\DeclarationParser::starts() packages/bison-parser/src/Syntax/DeclarationParser.php:54
- method-call BisonParser\Syntax\DeclarationParser::starts() packages/bison-parser/src/Syntax/DeclarationParser.php:55
- method-call BisonParser\Syntax\DeclarationParser::starts() packages/bison-parser/src/Syntax/DeclarationParser.php:56
- method-call BisonParser\Syntax\SymbolListParser::startsSymbol() packages/bison-parser/src/Syntax/SymbolListParser.php:239
- method-call BisonParser\Syntax\SymbolListParser::symbol() packages/bison-parser/src/Syntax/SymbolListParser.php:253
- method-call BisonParser\Syntax\SymbolListParser::kind() packages/bison-parser/src/Syntax/SymbolListParser.php:267
- method-call BisonParser\Syntax\SymbolListParser::kind() packages/bison-parser/src/Syntax/SymbolListParser.php:270
- method-call BisonParser\Syntax\SymbolListParser::kind() packages/bison-parser/src/Syntax/SymbolListParser.php:274
Type declarations 17
- type BisonParser\Scanner\Scanner packages/bison-parser/src/Scanner/Scanner.php:146
- type BisonParser\Scanner\Scanner packages/bison-parser/src/Scanner/Scanner.php:208
- type BisonParser\Scanner\Scanner packages/bison-parser/src/Scanner/Scanner.php:236
- type BisonParser\Scanner\Scanner packages/bison-parser/src/Scanner/Scanner.php:262
- type BisonParser\Scanner\Scanner packages/bison-parser/src/Scanner/Scanner.php:307
- type BisonParser\Scanner\Scanner packages/bison-parser/src/Scanner/Scanner.php:348
- type BisonParser\Syntax\DeclarationParser packages/bison-parser/src/Syntax/DeclarationParser.php:52
- type BisonParser\Syntax\DeclarationParser packages/bison-parser/src/Syntax/DeclarationParser.php:91
- type BisonParser\Syntax\DeclarationParser packages/bison-parser/src/Syntax/DeclarationParser.php:108
- type BisonParser\Syntax\RuleParser packages/bison-parser/src/Syntax/RuleParser.php:211
- type BisonParser\Syntax\SymbolListParser packages/bison-parser/src/Syntax/SymbolListParser.php:237
- type BisonParser\Syntax\SymbolListParser packages/bison-parser/src/Syntax/SymbolListParser.php:251
- type BisonParser\Syntax\SymbolListParser packages/bison-parser/src/Syntax/SymbolListParser.php:265
- type BisonParser\Syntax\TokenStream packages/bison-parser/src/Syntax/TokenStream.php:34
- type BisonParser\Syntax\TokenStream packages/bison-parser/src/Syntax/TokenStream.php:44
- type BisonParser\Syntax\TokenStream packages/bison-parser/src/Syntax/TokenStream.php:85
- type BisonParser\Syntax\TokenStream packages/bison-parser/src/Syntax/TokenStream.php:100