classDeclarationPrinter
final class DeclarationPrinter
Restricted visibility: declared "@visibility root". Code outside that scope must not name this declaration.
Writes declarations back as Lemon reads them.
Methods§
public function print(Declaration $declaration): stringWrites one declaration on one line, without the line break.
Parameters
$declaration | Declaration | The declaration |
Returns
string The textThrows
LogicException When the declaration is of a class the printer does not knowTest cases 1
Called from 1
Calls 13
- class-const Directive::class() line 39
- method-call DeclarationPrinter::argument() line 39
- class-const Destructor::class() line 40
- class-const TypeDeclaration::class() line 41
- class-const PrecedenceDeclaration::class() line 42
- method-call DeclarationPrinter::list() line 42
- class-const Fallback::class() line 43
- class-const TokenDeclaration::class() line 44
- class-const Wildcard::class() line 45
- class-const TokenClass::class() line 46
- function-call
implodeline 46 - function-call
array_mapline 46 - new
LogicExceptionline 47
public function argument(string $value, ArgumentForm $form): stringWrites an argument in the form it was read.
Parameters
$value | string | The argument without delimiters |
$form | ArgumentForm | How it was written |
Returns
string The argument with its delimitersTest cases 1
Called from 3
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:39
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:40
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:41
Calls 3
- class-const ArgumentForm::Code() line 62
- class-const ArgumentForm::String() line 63
- class-const ArgumentForm::Word() line 64
public function list(list<Symbol> $symbols): stringWrites a list of symbols with the period that ends it.
Parameters
$symbols | list<Symbol> | The symbols |
Returns
string A space before each symbol, then the periodTest cases 1
Called from 4
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:42
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:43
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:44
- method-call LemonParser\Printer\DeclarationPrinter::print() packages/lemon-parser/src/Printer/DeclarationPrinter.php:45
Test cases 6§
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 3
LemonGrammarCompilerTestcallsLemonGrammarReaderTestcallsPrinterTestcalls