Path: blob/master/src/infrastructure/lipsum/code/PhutilPHPCodeSnippetContextFreeGrammar.php
12256 views
<?php12final class PhutilPHPCodeSnippetContextFreeGrammar3extends PhutilCLikeCodeSnippetContextFreeGrammar {45protected function buildRuleSet() {6return array_merge(parent::buildRuleSet(), $this->getClassRuleSets());7}89protected function getStartGrammarSet() {10$start_grammar = parent::getStartGrammarSet();1112$start_grammar['start'][] = '[classdecl]';13$start_grammar['start'][] = '[classdecl]';1415return $start_grammar;16}1718protected function getExprGrammarSet() {19$expr = parent::getExprGrammarSet();2021$expr['expr'][] = 'new [classname]([funccallparam])';2223$expr['expr'][] = '[classname]::[funccall]';2425return $expr;26}2728protected function getVarNameGrammarSet() {29$varnames = parent::getVarNameGrammarSet();3031foreach ($varnames as $vn_key => $vn_val) {32foreach ($vn_val as $vv_key => $vv_value) {33$varnames[$vn_key][$vv_key] = '$'.$vv_value;34}35}3637return $varnames;38}3940protected function getFuncNameGrammarSet() {41return $this->buildGrammarSet('funcname',42array_mergev(get_defined_functions()));43}4445protected function getMethodCallGrammarSet() {46return $this->buildGrammarSet('methodcall',47array(48'$this->[funccall]',49'self::[funccall]',50'static::[funccall]',51'[varname]->[funccall]',52'[classname]::[funccall]',53));54}5556}575859