diff --git a/support/xhpast/generate_nodes.php b/support/xhpast/generate_nodes.php index 55fd33d..a6c5503 100755 --- a/support/xhpast/generate_nodes.php +++ b/support/xhpast/generate_nodes.php @@ -1,146 +1,161 @@ -#!/usr/local/bin/php +#!/usr/bin/env php $value) { +foreach ($nodes as $node => $value) { $hpp .= "#define {$node} {$value}\n"; } -file_put_contents('node_names.hpp', $hpp); -echo "Wrote C++ definition.\n"; +Filesystem::writeFile( + Filesystem::resolvePath('node_names.hpp', dirname(__FILE__)), + $hpp); +echo pht('Wrote C++ definition.')."\n"; $at = '@'; -$php = - " $value) { +$php = << $value) { $php .= " {$value} => '{$node}',\n"; } -$php .= " );\n"; -$php .= "}\n"; -file_put_contents('parser_nodes.php', $php); -echo "Wrote PHP definition.\n"; +$php .= << 'n_PROGRAM', 9001 => 'n_SYMBOL_NAME', 9002 => 'n_HALT_COMPILER', 9003 => 'n_NAMESPACE', 9004 => 'n_STATEMENT', 9005 => 'n_EMPTY', 9006 => 'n_STATEMENT_LIST', 9007 => 'n_OPEN_TAG', 9008 => 'n_CLOSE_TAG', 9009 => 'n_USE_LIST', 9010 => 'n_USE', 9011 => 'n_CONSTANT_DECLARATION_LIST', 9012 => 'n_CONSTANT_DECLARATION', 9013 => 'n_STRING', 9014 => 'n_LABEL', 9015 => 'n_CONDITION_LIST', 9016 => 'n_CONTROL_CONDITION', 9017 => 'n_IF', 9018 => 'n_ELSEIF', 9019 => 'n_ELSE', 9020 => 'n_WHILE', 9021 => 'n_DO_WHILE', 9022 => 'n_FOR', 9023 => 'n_FOR_EXPRESSION', 9024 => 'n_SWITCH', 9025 => 'n_BREAK', 9026 => 'n_CONTINUE', 9027 => 'n_RETURN', 9028 => 'n_GLOBAL_DECLARATION_LIST', 9029 => 'n_GLOBAL_DECLARATION', 9030 => 'n_STATIC_DECLARATION_LIST', 9031 => 'n_STATIC_DECLARATION', 9032 => 'n_ECHO_LIST', 9033 => 'n_ECHO', 9034 => 'n_INLINE_HTML', 9035 => 'n_UNSET_LIST', 9036 => 'n_UNSET', 9037 => 'n_FOREACH', 9038 => 'n_FOREACH_EXPRESSION', 9039 => 'n_THROW', 9040 => 'n_GOTO', 9041 => 'n_TRY', 9042 => 'n_CATCH_LIST', 9043 => 'n_CATCH', 9044 => 'n_DECLARE', 9045 => 'n_DECLARE_DECLARATION_LIST', 9046 => 'n_DECLARE_DECLARATION', 9047 => 'n_VARIABLE', 9048 => 'n_REFERENCE', 9049 => 'n_VARIABLE_REFERENCE', 9050 => 'n_FUNCTION_DECLARATION', 9051 => 'n_CLASS_DECLARATION', 9052 => 'n_CLASS_ATTRIBUTES', 9053 => 'n_EXTENDS', 9054 => 'n_EXTENDS_LIST', 9055 => 'n_IMPLEMENTS_LIST', 9056 => 'n_INTERFACE_DECLARATION', 9057 => 'n_CASE', 9058 => 'n_DEFAULT', 9059 => 'n_DECLARATION_PARAMETER_LIST', 9060 => 'n_DECLARATION_PARAMETER', 9061 => 'n_TYPE_NAME', 9062 => 'n_VARIABLE_VARIABLE', 9063 => 'n_CLASS_MEMBER_DECLARATION_LIST', 9064 => 'n_CLASS_MEMBER_DECLARATION', 9065 => 'n_CLASS_CONSTANT_DECLARATION_LIST', 9066 => 'n_CLASS_CONSTANT_DECLARATION', 9067 => 'n_METHOD_DECLARATION', 9068 => 'n_METHOD_MODIFIER_LIST', 9069 => 'n_FUNCTION_MODIFIER_LIST', 9070 => 'n_CLASS_MEMBER_MODIFIER_LIST', 9071 => 'n_EXPRESSION_LIST', 9072 => 'n_LIST', 9073 => 'n_ASSIGNMENT', 9074 => 'n_NEW', 9075 => 'n_UNARY_PREFIX_EXPRESSION', 9076 => 'n_UNARY_POSTFIX_EXPRESSION', 9077 => 'n_BINARY_EXPRESSION', 9078 => 'n_TERNARY_EXPRESSION', 9079 => 'n_CAST_EXPRESSION', 9080 => 'n_CAST', 9081 => 'n_OPERATOR', 9082 => 'n_ARRAY_LITERAL', 9083 => 'n_EXIT_EXPRESSION', 9084 => 'n_BACKTICKS_EXPRESSION', 9085 => 'n_LEXICAL_VARIABLE_LIST', 9086 => 'n_NUMERIC_SCALAR', 9087 => 'n_STRING_SCALAR', 9088 => 'n_MAGIC_SCALAR', 9089 => 'n_CLASS_STATIC_ACCESS', 9090 => 'n_CLASS_NAME', 9091 => 'n_MAGIC_CLASS_KEYWORD', 9092 => 'n_OBJECT_PROPERTY_ACCESS', 9093 => 'n_ARRAY_VALUE_LIST', 9094 => 'n_ARRAY_VALUE', 9095 => 'n_CALL_PARAMETER_LIST', 9096 => 'n_VARIABLE_EXPRESSION', 9097 => 'n_INCLUDE_FILE', 9098 => 'n_HEREDOC', 9099 => 'n_FUNCTION_CALL', 9100 => 'n_INDEX_ACCESS', 9101 => 'n_ASSIGNMENT_LIST', 9102 => 'n_METHOD_CALL', 9103 => 'n_CONCATENATION_LIST', 9104 => 'n_PARENTHETICAL_EXPRESSION', 9105 => 'n_TRAIT_USE', 9106 => 'n_TRAIT_USE_LIST', 9107 => 'n_TRAIT_ADAPTATION_LIST', 9108 => 'n_TRAIT_INSTEADOF', 9109 => 'n_TRAIT_REFERENCE_LIST', 9110 => 'n_TRAIT_METHOD_REFERENCE', 9111 => 'n_TRAIT_AS', 9112 => 'n_YIELD', 9113 => 'n_FINALLY', ); }