Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F3282020
generate_nodes.php
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Advanced/Developer...
View Handle
View Hovercard
Size
3 KB
Referenced Files
None
Subscribers
None
generate_nodes.php
View Options
#!/usr/bin/env php
<?php
require_once
dirname
(
__FILE__
)
.
'/../../scripts/__init_script__.php'
;
$offset
=
9000
;
$nodes
=
array
(
'n_PROGRAM'
,
'n_SYMBOL_NAME'
,
'n_HALT_COMPILER'
,
'n_NAMESPACE'
,
'n_STATEMENT'
,
'n_EMPTY'
,
'n_STATEMENT_LIST'
,
'n_OPEN_TAG'
,
'n_CLOSE_TAG'
,
'n_USE_LIST'
,
'n_USE'
,
'n_CONSTANT_DECLARATION_LIST'
,
'n_CONSTANT_DECLARATION'
,
'n_STRING'
,
'n_LABEL'
,
'n_CONDITION_LIST'
,
'n_CONTROL_CONDITION'
,
'n_IF'
,
'n_ELSEIF'
,
'n_ELSE'
,
'n_WHILE'
,
'n_DO_WHILE'
,
'n_FOR'
,
'n_FOR_EXPRESSION'
,
'n_SWITCH'
,
'n_BREAK'
,
'n_CONTINUE'
,
'n_RETURN'
,
'n_GLOBAL_DECLARATION_LIST'
,
'n_GLOBAL_DECLARATION'
,
'n_STATIC_DECLARATION_LIST'
,
'n_STATIC_DECLARATION'
,
'n_ECHO_LIST'
,
'n_ECHO'
,
'n_INLINE_HTML'
,
'n_UNSET_LIST'
,
'n_UNSET'
,
'n_FOREACH'
,
'n_FOREACH_EXPRESSION'
,
'n_THROW'
,
'n_GOTO'
,
'n_TRY'
,
'n_CATCH_LIST'
,
'n_CATCH'
,
'n_DECLARE'
,
'n_DECLARE_DECLARATION_LIST'
,
'n_DECLARE_DECLARATION'
,
'n_VARIABLE'
,
'n_REFERENCE'
,
'n_VARIABLE_REFERENCE'
,
'n_FUNCTION_DECLARATION'
,
'n_CLASS_DECLARATION'
,
'n_CLASS_ATTRIBUTES'
,
'n_EXTENDS'
,
'n_EXTENDS_LIST'
,
'n_IMPLEMENTS_LIST'
,
'n_INTERFACE_DECLARATION'
,
'n_CASE'
,
'n_DEFAULT'
,
'n_DECLARATION_PARAMETER_LIST'
,
'n_DECLARATION_PARAMETER'
,
'n_TYPE_NAME'
,
'n_VARIABLE_VARIABLE'
,
'n_CLASS_MEMBER_DECLARATION_LIST'
,
'n_CLASS_MEMBER_DECLARATION'
,
'n_CLASS_CONSTANT_DECLARATION_LIST'
,
'n_CLASS_CONSTANT_DECLARATION'
,
'n_METHOD_DECLARATION'
,
'n_METHOD_MODIFIER_LIST'
,
'n_FUNCTION_MODIFIER_LIST'
,
'n_CLASS_MEMBER_MODIFIER_LIST'
,
'n_EXPRESSION_LIST'
,
'n_LIST'
,
'n_ASSIGNMENT'
,
'n_NEW'
,
'n_UNARY_PREFIX_EXPRESSION'
,
'n_UNARY_POSTFIX_EXPRESSION'
,
'n_BINARY_EXPRESSION'
,
'n_TERNARY_EXPRESSION'
,
'n_CAST_EXPRESSION'
,
'n_CAST'
,
'n_OPERATOR'
,
'n_ARRAY_LITERAL'
,
'n_EXIT_EXPRESSION'
,
'n_BACKTICKS_EXPRESSION'
,
'n_LEXICAL_VARIABLE_LIST'
,
'n_NUMERIC_SCALAR'
,
'n_STRING_SCALAR'
,
'n_MAGIC_SCALAR'
,
'n_CLASS_STATIC_ACCESS'
,
'n_CLASS_NAME'
,
'n_MAGIC_CLASS_KEYWORD'
,
'n_OBJECT_PROPERTY_ACCESS'
,
'n_ARRAY_VALUE_LIST'
,
'n_ARRAY_VALUE'
,
'n_CALL_PARAMETER_LIST'
,
'n_VARIABLE_EXPRESSION'
,
'n_INCLUDE_FILE'
,
'n_HEREDOC'
,
'n_FUNCTION_CALL'
,
'n_INDEX_ACCESS'
,
'n_ASSIGNMENT_LIST'
,
'n_METHOD_CALL'
,
'n_CONCATENATION_LIST'
,
'n_PARENTHETICAL_EXPRESSION'
,
'n_TRAIT_USE'
,
'n_TRAIT_USE_LIST'
,
'n_TRAIT_ADAPTATION_LIST'
,
'n_TRAIT_INSTEADOF'
,
'n_TRAIT_REFERENCE_LIST'
,
'n_TRAIT_METHOD_REFERENCE'
,
'n_TRAIT_AS'
,
'n_YIELD'
,
'n_FINALLY'
,
'n_UNPACK'
,
'n_DECLARATION_RETURN'
,
'n_NULLABLE_TYPE'
,
)
;
$nodes
=
array_combine
(
array_values
(
$nodes
)
,
range
(
$offset
,
$offset
+
count
(
$nodes
)
-
1
)
)
;
$hpp
=
''
;
foreach
(
$nodes
as
$node
=>
$value
)
{
$hpp
.=
"#define {$node} {$value}\n"
;
}
Filesystem
::
writeFile
(
Filesystem
::
resolvePath
(
'node_names.hpp'
,
dirname
(
__FILE__
)
)
,
$hpp
)
;
echo
pht
(
'Wrote C++ definition.'
)
.
"\n"
;
$at
=
'@'
;
$php
=
<<<EOPHP
<?php
/**
* {$at}generated
* {$at}undivinable
*/
function xhp_parser_node_constants() {
return array(
EOPHP
;
foreach
(
$nodes
as
$node
=>
$value
)
{
$php
.=
" {$value} => '{$node}',\n"
;
}
$php
.=
<<<EOPHP
);
}
EOPHP
;
Filesystem
::
writeFile
(
Filesystem
::
resolvePath
(
'parser_nodes.php'
,
dirname
(
__FILE__
)
)
,
$php
)
;
echo
pht
(
'Wrote PHP definition.'
)
.
"\n"
;
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Mon, Mar 24, 03:22 (1 d, 2 h ago)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
1118873
Default Alt Text
generate_nodes.php (3 KB)
Attached To
Mode
rARC Arcanist
Attached
Detach File
Event Timeline
Log In to Comment