Changeset View
Changeset View
Standalone View
Standalone View
parser/php.g
Show First 20 Lines • Show All 230 Lines • ▼ Show 20 Line(s) | 221 | %token ABSTRACT ("abstract"), BREAK ("break"), CASE ("case"), CATCH ("catch"), | |||
---|---|---|---|---|---|
231 | DECLARE ("declare"), ENDDECLARE ("enddeclare"), AS ("as"), ENDSWITCH ("endswitch"), | 231 | DECLARE ("declare"), ENDDECLARE ("enddeclare"), AS ("as"), ENDSWITCH ("endswitch"), | ||
232 | FUNCTION ("function"), USE ("use"), GLOBAL ("global"), VAR ("var "), UNSET ("unset"), | 232 | FUNCTION ("function"), USE ("use"), GLOBAL ("global"), VAR ("var "), UNSET ("unset"), | ||
233 | ISSET ("isset"), EMPTY ("empty"), HALT_COMPILER ("halt compiler"), | 233 | ISSET ("isset"), EMPTY ("empty"), HALT_COMPILER ("halt compiler"), | ||
234 | DOUBLE_ARROW ("=>"), LIST ("list"), ARRAY ("array"), CLASS_C ("__CLASS__"), | 234 | DOUBLE_ARROW ("=>"), LIST ("list"), ARRAY ("array"), CLASS_C ("__CLASS__"), | ||
235 | METHOD_C ("__METHOD__"), FUNC_C ("__FUNCTION__"), LINE ("__LINE__"), | 235 | METHOD_C ("__METHOD__"), FUNC_C ("__FUNCTION__"), LINE ("__LINE__"), | ||
236 | FILE ("__FILE__"), COMMENT ("comment"), DOC_COMMENT ("doc comment"), PAAMAYIM_NEKUDOTAYIM ("::"), | 236 | FILE ("__FILE__"), COMMENT ("comment"), DOC_COMMENT ("doc comment"), PAAMAYIM_NEKUDOTAYIM ("::"), | ||
237 | INCLUDE ("include"), INCLUDE_ONCE ("include_once"), EVAL ("eval"), REQUIRE ("require"), | 237 | INCLUDE ("include"), INCLUDE_ONCE ("include_once"), EVAL ("eval"), REQUIRE ("require"), | ||
238 | REQUIRE_ONCE ("require_once"), NAMESPACE ("namespace"), NAMESPACE_C("__NAMESPACE__"), USE("use"), | 238 | REQUIRE_ONCE ("require_once"), NAMESPACE ("namespace"), NAMESPACE_C("__NAMESPACE__"), USE("use"), | ||
239 | GOTO ("goto"), TRAIT ("trait"), INSTEADOF ("insteadof"), CALLABLE ("callable") ;; | 239 | GOTO ("goto"), TRAIT ("trait"), INSTEADOF ("insteadof"), CALLABLE ("callable"), | ||
240 | ITERABLE ("iterable"), BOOL ("bool"), FLOAT ("float"), INT ("int"), STRING_TYPE ("string") ;; | ||||
240 | 241 | | |||
241 | -- casts: | 242 | -- casts: | ||
242 | %token INT_CAST ("int cast"), DOUBLE_CAST ("double cast"), STRING_CAST ("string cast"), | 243 | %token INT_CAST ("int cast"), DOUBLE_CAST ("double cast"), STRING_CAST ("string cast"), | ||
243 | ARRAY_CAST ("array cast"), OBJECT_CAST ("object cast"), BOOL_CAST ("bool cast"), | 244 | ARRAY_CAST ("array cast"), OBJECT_CAST ("object cast"), BOOL_CAST ("bool cast"), | ||
244 | UNSET_CAST ("unset cast") ;; | 245 | UNSET_CAST ("unset cast") ;; | ||
245 | 246 | | |||
246 | -- seperators: | 247 | -- seperators: | ||
247 | %token SEMICOLON (";"), DOUBLE_QUOTE ("\""), LBRACKET ("["), | 248 | %token SEMICOLON (";"), DOUBLE_QUOTE ("\""), LBRACKET ("["), | ||
▲ Show 20 Lines • Show All 626 Lines • ▼ Show 20 Line(s) | 874 | ] ;; | |||
874 | 875 | | |||
875 | FUNCTION (BIT_AND | 0) functionName=identifier | 876 | FUNCTION (BIT_AND | 0) functionName=identifier | ||
876 | LPAREN parameters=parameterList RPAREN LBRACE try/recover(functionBody=innerStatementList) RBRACE | 877 | LPAREN parameters=parameterList RPAREN LBRACE try/recover(functionBody=innerStatementList) RBRACE | ||
877 | -> functionDeclarationStatement ;; | 878 | -> functionDeclarationStatement ;; | ||
878 | 879 | | |||
879 | (#parameters=parameter @ COMMA) | 0 | 880 | (#parameters=parameter @ COMMA) | 0 | ||
880 | -> parameterList ;; | 881 | -> parameterList ;; | ||
881 | 882 | | |||
882 | (parameterType=namespacedIdentifier | arrayType=ARRAY | callableType=CALLABLE | 0) (isRef=BIT_AND | 0) | 883 | (parameterType=parameterType | 0) (isRef=BIT_AND | 0) | ||
883 | (isVariadic=ELLIPSIS | 0) variable=variableIdentifier (ASSIGN defaultValue=staticScalar | 0) | 884 | (isVariadic=ELLIPSIS | 0) variable=variableIdentifier (ASSIGN defaultValue=staticScalar | 0) | ||
884 | -> parameter ;; | 885 | -> parameter ;; | ||
885 | 886 | | |||
887 | (isNullable=QUESTION | 0) ( | ||||
pprkut: I think calling this "isNullable" would better indicate what it entails. "?string" doesn't mean… | |||||
888 | objectType=namespacedIdentifier | ||||
889 | | arrayType=ARRAY | ||||
890 | | callableType=CALLABLE | ||||
891 | | iterableType=ITERABLE | ||||
892 | | boolType=BOOL | ||||
893 | | floatType=FLOAT | ||||
894 | | intType=INT | ||||
895 | | stringType=STRING_TYPE | ||||
896 | ) | ||||
897 | -> parameterType ;; | ||||
898 | | ||||
886 | value=commonScalar | 899 | value=commonScalar | ||
887 | | constantOrClassConst=constantOrClassConst | 900 | | constantOrClassConst=constantOrClassConst | ||
888 | | PLUS plusValue=staticScalar | 901 | | PLUS plusValue=staticScalar | ||
889 | | MINUS minusValue=staticScalar | 902 | | MINUS minusValue=staticScalar | ||
890 | | array=ARRAY LPAREN | 903 | | array=ARRAY LPAREN | ||
891 | (#arrayValues=staticArrayPairValue | 904 | (#arrayValues=staticArrayPairValue | ||
892 | -- break because array(1,) is allowed | 905 | -- break because array(1,) is allowed | ||
893 | @ (COMMA [: if (yytoken == Token_RPAREN) { break; } :] ) | 0) | 906 | @ (COMMA [: if (yytoken == Token_RPAREN) { break; } :] ) | 0) | ||
▲ Show 20 Lines • Show All 314 Lines • Show Last 20 Lines |
I think calling this "isNullable" would better indicate what it entails. "?string" doesn't mean the string type is optional, it means it can either be string or NULL.