classBisonDeclarationBoundary
final class BisonDeclarationBoundary
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Decides where one declaration stops and the next thing starts.
Bison declarations are not terminated: %token A B C runs until something that can only begin something else appears. Every reader that consumes a list of symbols needs that judgement, and it has to be the same judgement in all of them, or two readers would disagree about which declaration a symbol belongs to.
Methods§
public function continuesWith(BisonLexeme $lexeme): boolReports whether a lexeme still belongs to the declaration being read.
Parameters
$lexeme | BisonLexeme | Lexeme waiting at the front of the stream |
Returns
bool True while the declaration continues, false where it endsTest cases 15
BisonDeclarationBoundaryTest::testContinuesWithAnswersForEveryLexemecovers and callsBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElsecallsBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a character literal continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a colon continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a name continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a number continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a pipe continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a prologue ends itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a semicolon continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a string literal continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a type tag continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#an action continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#another directive ends itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#the end of file ends itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#the section separator ends itcovers
Called from 4
- method-call SqlFaker\Compiler\Bison\Directive\PrecedenceDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/PrecedenceDirectiveReader.php:70
- method-call SqlFaker\Compiler\Bison\Directive\TokenDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/TokenDirectiveReader.php:66
- method-call SqlFaker\Compiler\Bison\Directive\TypeDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/TypeDirectiveReader.php:67
- method-call SqlFaker\Compiler\Bison\Directive\UnknownDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/UnknownDirectiveReader.php:61
Calls 13
- class-const BisonLexeme::Directive() line 32
- class-const BisonLexeme::Prologue() line 33
- class-const BisonLexeme::PercentPercent() line 34
- class-const BisonLexeme::Eof() line 35
- class-const BisonLexeme::Identifier() line 36
- class-const BisonLexeme::Number() line 37
- class-const BisonLexeme::CharLiteral() line 38
- class-const BisonLexeme::StringLiteral() line 39
- class-const BisonLexeme::TypeTag() line 40
- class-const BisonLexeme::Colon() line 41
- class-const BisonLexeme::Semicolon() line 42
- class-const BisonLexeme::Pipe() line 43
- class-const BisonLexeme::Action() line 44
Test cases 25§
Test cases that cover or call this symbol, from the coverage report and from the analyzed test sources.
Dedicated tests 15
BisonDeclarationBoundaryTest::testContinuesWithAnswersForEveryLexemecovers and callsBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElsecallsBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a character literal continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a colon continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a name continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a number continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a pipe continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a prologue ends itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a semicolon continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a string literal continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#a type tag continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#an action continues itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#another directive ends itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#the end of file ends itcoversBisonDeclarationBoundaryTest::testContinuesWithSeparatesArgumentsFromWhatStartsSomethingElse#the section separator ends itcovers
Other tests reaching this symbol 10
BisonParserTestcallsBisonPreambleReaderTestcallsBisonDirectiveReaderChainTestcallsDefineDirectiveReaderTestcallsExpectDirectiveReaderTestcallsParamDirectiveReaderTestcallsPrecedenceDirectiveReaderTestcallsTokenDirectiveReaderTestcallsTypeDirectiveReaderTestcallsUnknownDirectiveReaderTestcalls
Relations§
Instantiated in 5
- new SqlFaker\Compiler\Bison\Directive\BisonDirectiveReaderChain::forBisonGrammar() packages/sql-faker/src/Compiler/Bison/Directive/BisonDirectiveReaderChain.php:36
- new SqlFaker\Compiler\Bison\Directive\PrecedenceDirectiveReader::__construct() packages/sql-faker/src/Compiler/Bison/Directive/PrecedenceDirectiveReader.php:33
- new SqlFaker\Compiler\Bison\Directive\TokenDirectiveReader::__construct() packages/sql-faker/src/Compiler/Bison/Directive/TokenDirectiveReader.php:33
- new SqlFaker\Compiler\Bison\Directive\TypeDirectiveReader::__construct() packages/sql-faker/src/Compiler/Bison/Directive/TypeDirectiveReader.php:31
- new SqlFaker\Compiler\Bison\Directive\UnknownDirectiveReader::__construct() packages/sql-faker/src/Compiler/Bison/Directive/UnknownDirectiveReader.php:31
Method calls 4
- method-call SqlFaker\Compiler\Bison\Directive\PrecedenceDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/PrecedenceDirectiveReader.php:70
- method-call SqlFaker\Compiler\Bison\Directive\TokenDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/TokenDirectiveReader.php:66
- method-call SqlFaker\Compiler\Bison\Directive\TypeDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/TypeDirectiveReader.php:67
- method-call SqlFaker\Compiler\Bison\Directive\UnknownDirectiveReader::read() packages/sql-faker/src/Compiler/Bison/Directive/UnknownDirectiveReader.php:61
Type declarations 8
- type SqlFaker\Compiler\Bison\Directive\PrecedenceDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/PrecedenceDirectiveReader.php:26
- type SqlFaker\Compiler\Bison\Directive\PrecedenceDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/PrecedenceDirectiveReader.php:31
- type SqlFaker\Compiler\Bison\Directive\TokenDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/TokenDirectiveReader.php:26
- type SqlFaker\Compiler\Bison\Directive\TokenDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/TokenDirectiveReader.php:31
- type SqlFaker\Compiler\Bison\Directive\TypeDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/TypeDirectiveReader.php:24
- type SqlFaker\Compiler\Bison\Directive\TypeDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/TypeDirectiveReader.php:29
- type SqlFaker\Compiler\Bison\Directive\UnknownDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/UnknownDirectiveReader.php:24
- type SqlFaker\Compiler\Bison\Directive\UnknownDirectiveReader packages/sql-faker/src/Compiler/Bison/Directive/UnknownDirectiveReader.php:29