class Tlf\Lexer\Test\PhpGrammar

Constants

Properties

  • `protected $thingies = [

      'Property.IntType'=>[
          'expect_failure'=>true,
          'start''class_modifier', 'whitespace'],
          'input'' public int $blm = "an important movement.";',
          'expect'=>[
              'properties'=>[
                  0=>[
                      'type''property',
                      'modifiers''public ',
                      'docblock'=> '',
                      'name''blm',
                      'declaration''public int $blm = "an important movement.";',
                  ],
              ],
          ],
      ],
    
      'Property.NoType'=>[
          'start''class_modifier', 'whitespace'],
          'input'' public $blm = "an important movement.";',
          'expect'=>[
              'properties'=>[
                  0=>[
                      'type''property',
                      'modifiers''public ',
                      'docblock'=> '',
                      'name''blm',
                      'declaration''public $blm = "an important movement.";',
                  ],
              ],
          ],
      ],
    
      'String.Nowdoc'=>[
          'start''strings',
          'input'"<<<'PHP'\nyep yep\nPHP;",
          'expect.previous'=>[
              'string'"<<<'PHP'\nyep yep\nPHP",
          ]
      ],
      'String.Heredoc'=>[
          'start''strings',
          'input'"<<<PHP\nyep yep\nPHP;",
          'expect.previous'=>[
              'string'"<<<PHP\nyep yep\nPHP",
          ]
      ],
    
      'String.EndsWithBackslash'=>[
          'start''strings',
          'input'"'a\\\\'",
          'expect.previous'=>[
              'string'"'a\\\\'",
          ],
      ],
      'String.HasABackslash'=>[
          'start''strings',
          'input'"'\\a'",
          'expect.previous'=>[
              'string'"'\\a'",
          ],
      ],
      'String.EscapedSingleQuote'=>[
          'start''strings',
          'input'"'abc \\'quote start '",
          'expect.previous'=>[
              'string'"'abc \\'quote start '",
          ],
      ],
      'String.SingleQuotesInside'=>[
          'start''strings',
          'input''"abc \'quoted\' "',
          'expect.previous'=>[
              'string'=>'"abc 'quoted\' 123"',
          ],
      ],
      'String.DoubleQuotesInside'=>[
          'start''strings',
          'input'"'abc \"quoted\" '",
          ''=>[
              ''=>"'abc "quoted\" 123'",
          ],
      ],
      'String.Simple'=>[
          'start''strings',
          'input'"'abc def 123'",
          'expect.previous'=>[
              'string'"'abc def 123'",
          ],
      ],
    
      'Method.ContainsNestedBlock'=>[
          'start''class_modifier',
          'input'=>
              <<<PHP
              public function nest(){
                  if (true){
                      while(false){
                          echo "okay";
                      }
                  }
              }
              PHP,
          'expect'=>[
              'methods'=>[
                  0=>[
                      'type''method',
                      'modifiers''public function ',
                      'docblock''',
                      'name''nest',
                      'definition''public function nest()',
                      'arglist''',
                  ]
              ],
          ],
      ],
    
      'Php.Open.Docblock.Namespace'=>[
          'start''php_open',
          'input'"<?php \n /** This is a namespace */ namespace abc;",
          'expect'=>[
              'namespace.docblock'=>[
                  'type''docblock',
                  'description''This is a namespace',
              ],
              'namespace''abc',
          ],
      ],
      'Php.Open.Convoluted'=>[
          'start''php_open',
          'input'"/*asdflku<\\?php<?php namespace abc;",
          'expect'=>[
              'namespace''abc',
              'namespace.docblock''',
          ],
      ],
      'Php.Open.Simple'=>[
          'start''php_open',
          'input'"<?php namespace abc;",
          'expect'=>[
              'namespace''abc',
              'namespace.docblock''',
          ],
      ],
    
      'Class.Extends.IntoAst'=>[
          'expect_failure'=>true,
          'start''class'],
          'input''class Abc extends Def {',
          'expect'=>[
              'class'=>[[
                  'type''class', 'docblock'=>null, 'namespace''', 'name''Abc', 'extends''Def', 'declaration''class Abc extends Def '
              ]],
          ]
      ],
      'Class.Extends.IntoDeclaration'=>[
           'expect_failure'=>true,            'start''class'],
          'input''class Abc extends Def {',
          'expect'=>[
              'class'=>[[
                  'type''class', 'docblock'=>null, 'namespace''', 'name''Abc', 'declaration''class Abc extends Def '
              ]],
          ]
      ],
    
      'Class.Abstract'=>[
          'expect_failure'=>true,
          'start''class'],
          'input''abstract class Def {',
          'expect'=>[
              'class'=>[[
                  'type''class', 'docblock'=>null, 'namespace''', 'name''Abc', 'declaration''class Abc '
              ]],
          ],
      ],
      'Class.ExtendsWithNoSpaceAfterExtendedClass'=>[
          'start''php_open'],
          'input''<?php class Abc extends Alphabet{}',
          'expect'=>[
              'class'=>[[
                  'type''class', 'docblock'=>null, 'namespace''', 'name''Abc', 'declaration''class Abc extends Alphabet'
              ]],
          ],
      ],
    
      'Class.MinimalMinusASpace'=>[
          'start''class'],
          'input''class Abc{}',
          'expect'=>[
              'class'=>[[
                  'type''class', 'docblock'=>null, 'namespace''', 'name''Abc', 'declaration''class Abc'
              ]],
          ],
      ],
      'Class.Minimal'=>[
          'start''class'],
          'input''class Abc {',
          'expect'=>[
              'class'=>[[
                  'type''class', 'docblock'=>null, 'namespace''', 'name''Abc', 'declaration''class Abc '
              ]],
          ],
      ],
      'Namespace.WithDocblockAfterNs'=>[
          'expect_failure'=>true,
          'start''namespace'],
          'input'"namespace/**docblock*/Abc\Def;",
          'expect'=>[
              "namespace"=> 'Abc\\Def',        
              'namespace.docblock''docblock',
          ],
      ],
      'Namespace.WithNewLines'=>[
          'start''namespace'],
          'input'"namespace \nAbc\n\\\\\nDef_09;",
          'expect'=>[
              "namespace"=> 'Abc\\Def_09',           
              'namespace.docblock''',
          ],
      ],
      'Namespace.WithDocblocksAtTheEnd'=>[
          'start''namespace'],
          'input'"namespace Abc\\/**docblock**/Def_09/**more docblock*/;",
          'expect'=>[
              'namespace.docblock'=>[
                  'type''docblock',
                  'description''more docblock',
              ],
              "namespace"=> 'Abc\\Def_09',          
          ],
      ],
      'Namespace.WithDocblocksInTheMiddle'=>[
          'start''namespace'],
          'input'"namespace Abc\\/**docblock**/Def_09;",
          'expect'=>[
              'namespace.docblock'=>[
                  'type''docblock',
                  'description''docblock*',
              ],
              "namespace"=> 'Abc\\Def_09',
          ],
      ],
      'Namespace.SeparatedName'=>[
          'start''namespace'],
          'input'"namespace Abc\\Def\_09;",
          'expect'=>[
              "namespace"=> 'Abc\\Def\\_09',
              'namespace.docblock''',
          ],
      ],
      'Namespace.Simple'=>[
          'start''namespace'],
          'input'"namespace AbcDef_09;",
          'expect'=>[
              "namespace"=> 'AbcDef_09',
              'namespace.docblock''',
          ],
      ],
    

    ];`

Methods

  • public function testPhpDirectives()
  • public function testPhpPhpGrammar16Jul21()
  • public function testPhpStarterGrammar16Jul21()
  • public function testPhpSampleClass()