codegen/token_from_data.hack (241 lines of code) (raw):
/**
* This file is generated. Do not modify it manually!
*
* @generated SignedSource<<05f5357fbfec4b8addb5c5ea59c082a5>>
*/
namespace Facebook\HHAST\__Private;
use namespace Facebook\HHAST;
function token_from_data(
SourceRef $source_ref,
string $token_kind,
HHAST\NodeList<HHAST\Trivia> $leading,
HHAST\NodeList<HHAST\Trivia> $trailing,
string $token_text,
): HHAST\Token {
$cls = TokenClassMap::WITHOUT_TEXT[$token_kind] ?? null;
if ($cls !== null) {
return new $cls($leading, $trailing, $source_ref);
}
$cls = TokenClassMap::WITH_TEXT[$token_kind] ?? null;
if ($cls !== null) {
return new $cls($leading, $trailing, $token_text, $source_ref);
}
throw new HHAST\UnsupportedTokenError(
$source_ref['file'],
$source_ref['offset'],
$token_kind,
);
}
class TokenClassMap {
const dict<string, classname<HHAST\TokenWithVariableText>> WITH_TEXT = dict[
'abstract' => HHAST\AbstractToken::class,
'arraykey' => HHAST\ArraykeyToken::class,
'as' => HHAST\AsToken::class,
'async' => HHAST\AsyncToken::class,
'attribute' => HHAST\AttributeToken::class,
'await' => HHAST\AwaitToken::class,
'binary' => HHAST\BinaryToken::class,
'bool' => HHAST\BoolToken::class,
'boolean' => HHAST\BooleanToken::class,
'break' => HHAST\BreakToken::class,
'case' => HHAST\CaseToken::class,
'catch' => HHAST\CatchToken::class,
'category' => HHAST\CategoryToken::class,
'children' => HHAST\ChildrenToken::class,
'class' => HHAST\ClassToken::class,
'classname' => HHAST\ClassnameToken::class,
'clone' => HHAST\CloneToken::class,
'concurrent' => HHAST\ConcurrentToken::class,
'const' => HHAST\ConstToken::class,
'__construct' => HHAST\ConstructToken::class,
'continue' => HHAST\ContinueToken::class,
'ctx' => HHAST\CtxToken::class,
'darray' => HHAST\DarrayToken::class,
'default' => HHAST\DefaultToken::class,
'define' => HHAST\DefineToken::class,
'dict' => HHAST\DictToken::class,
'do' => HHAST\DoToken::class,
'double' => HHAST\DoubleToken::class,
'echo' => HHAST\EchoToken::class,
'else' => HHAST\ElseToken::class,
'elseif' => HHAST\ElseifToken::class,
'empty' => HHAST\EmptyToken::class,
'endfor' => HHAST\EndforToken::class,
'endforeach' => HHAST\EndforeachToken::class,
'endif' => HHAST\EndifToken::class,
'endswitch' => HHAST\EndswitchToken::class,
'endwhile' => HHAST\EndwhileToken::class,
'enum' => HHAST\EnumToken::class,
'eval' => HHAST\EvalToken::class,
'extends' => HHAST\ExtendsToken::class,
'fallthrough' => HHAST\FallthroughToken::class,
'file' => HHAST\FileToken::class,
'final' => HHAST\FinalToken::class,
'finally' => HHAST\FinallyToken::class,
'float' => HHAST\FloatToken::class,
'for' => HHAST\ForToken::class,
'foreach' => HHAST\ForeachToken::class,
'from' => HHAST\FromToken::class,
'function' => HHAST\FunctionToken::class,
'global' => HHAST\GlobalToken::class,
'if' => HHAST\IfToken::class,
'implements' => HHAST\ImplementsToken::class,
'include' => HHAST\IncludeToken::class,
'include_once' => HHAST\Include_onceToken::class,
'inout' => HHAST\InoutToken::class,
'instanceof' => HHAST\InstanceofToken::class,
'insteadof' => HHAST\InsteadofToken::class,
'int' => HHAST\IntToken::class,
'integer' => HHAST\IntegerToken::class,
'interface' => HHAST\InterfaceToken::class,
'is' => HHAST\IsToken::class,
'isset' => HHAST\IssetToken::class,
'keyset' => HHAST\KeysetToken::class,
'lateinit' => HHAST\LateinitToken::class,
'list' => HHAST\ListToken::class,
'mixed' => HHAST\MixedToken::class,
'module' => HHAST\ModuleToken::class,
'namespace' => HHAST\NamespaceToken::class,
'new' => HHAST\NewToken::class,
'newctx' => HHAST\NewctxToken::class,
'newtype' => HHAST\NewtypeToken::class,
'noreturn' => HHAST\NoreturnToken::class,
'null' => HHAST\NullLiteralToken::class,
'num' => HHAST\NumToken::class,
'object' => HHAST\ObjectToken::class,
'parent' => HHAST\ParentToken::class,
'print' => HHAST\PrintToken::class,
'private' => HHAST\PrivateToken::class,
'protected' => HHAST\ProtectedToken::class,
'public' => HHAST\PublicToken::class,
'?as' => HHAST\QuestionAsToken::class,
'readonly' => HHAST\ReadonlyToken::class,
'real' => HHAST\RealToken::class,
'reify' => HHAST\ReifyToken::class,
'require' => HHAST\RequireToken::class,
'require_once' => HHAST\Require_onceToken::class,
'required' => HHAST\RequiredToken::class,
'resource' => HHAST\ResourceToken::class,
'return' => HHAST\ReturnToken::class,
'self' => HHAST\SelfToken::class,
'shape' => HHAST\ShapeToken::class,
'static' => HHAST\StaticToken::class,
'string' => HHAST\StringToken::class,
'super' => HHAST\SuperToken::class,
'switch' => HHAST\SwitchToken::class,
'this' => HHAST\ThisToken::class,
'throw' => HHAST\ThrowToken::class,
'trait' => HHAST\TraitToken::class,
'try' => HHAST\TryToken::class,
'tuple' => HHAST\TupleToken::class,
'type' => HHAST\TypeToken::class,
'unset' => HHAST\UnsetToken::class,
'upcast' => HHAST\UpcastToken::class,
'use' => HHAST\UseToken::class,
'using' => HHAST\UsingToken::class,
'var' => HHAST\VarToken::class,
'varray' => HHAST\VarrayToken::class,
'vec' => HHAST\VecToken::class,
'void' => HHAST\VoidToken::class,
'where' => HHAST\WhereToken::class,
'while' => HHAST\WhileToken::class,
'xhp' => HHAST\XHPToken::class,
'yield' => HHAST\YieldToken::class,
'binary_literal' => HHAST\BinaryLiteralToken::class,
'boolean_literal' => HHAST\BooleanLiteralToken::class,
'decimal_literal' => HHAST\DecimalLiteralToken::class,
'double_quoted_string_literal' =>
HHAST\DoubleQuotedStringLiteralToken::class,
'double_quoted_string_literal_head' =>
HHAST\DoubleQuotedStringLiteralHeadToken::class,
'double_quoted_string_literal_tail' =>
HHAST\DoubleQuotedStringLiteralTailToken::class,
'error_token' => HHAST\ErrorTokenToken::class,
'floating_literal' => HHAST\FloatingLiteralToken::class,
'hashbang' => HHAST\HashbangToken::class,
'heredoc_string_literal' => HHAST\HeredocStringLiteralToken::class,
'heredoc_string_literal_head' => HHAST\HeredocStringLiteralHeadToken::class,
'heredoc_string_literal_tail' => HHAST\HeredocStringLiteralTailToken::class,
'hexadecimal_literal' => HHAST\HexadecimalLiteralToken::class,
'name' => HHAST\NameToken::class,
'nowdoc_string_literal' => HHAST\NowdocStringLiteralToken::class,
'octal_literal' => HHAST\OctalLiteralToken::class,
'single_quoted_string_literal' =>
HHAST\SingleQuotedStringLiteralToken::class,
'string_literal_body' => HHAST\StringLiteralBodyToken::class,
'variable' => HHAST\VariableToken::class,
'XHP_body' => HHAST\XHPBodyToken::class,
'XHP_category_name' => HHAST\XHPCategoryNameToken::class,
'XHP_class_name' => HHAST\XHPClassNameToken::class,
'XHP_comment' => HHAST\XHPCommentToken::class,
'XHP_element_name' => HHAST\XHPElementNameToken::class,
'XHP_string_literal' => HHAST\XHPStringLiteralToken::class,
];
const dict<string, classname<HHAST\TokenWithFixedText>> WITHOUT_TEXT = dict[
'end_of_file' => HHAST\EndOfFileToken::class,
'&' => HHAST\AmpersandToken::class,
'&&' => HHAST\AmpersandAmpersandToken::class,
'&=' => HHAST\AmpersandEqualToken::class,
'@' => HHAST\AtToken::class,
'\\' => HHAST\BackslashToken::class,
'`' => HHAST\BacktickToken::class,
'|' => HHAST\BarToken::class,
'||' => HHAST\BarBarToken::class,
'|=' => HHAST\BarEqualToken::class,
'|>' => HHAST\BarGreaterThanToken::class,
'^' => HHAST\CaratToken::class,
'^=' => HHAST\CaratEqualToken::class,
':' => HHAST\ColonToken::class,
'::' => HHAST\ColonColonToken::class,
',' => HHAST\CommaToken::class,
'$' => HHAST\DollarToken::class,
'$$' => HHAST\DollarDollarToken::class,
'.' => HHAST\DotToken::class,
'...' => HHAST\DotDotDotToken::class,
'.=' => HHAST\DotEqualToken::class,
'=' => HHAST\EqualToken::class,
'==' => HHAST\EqualEqualToken::class,
'===' => HHAST\EqualEqualEqualToken::class,
'==>' => HHAST\EqualEqualGreaterThanToken::class,
'=>' => HHAST\EqualGreaterThanToken::class,
'!' => HHAST\ExclamationToken::class,
'!=' => HHAST\ExclamationEqualToken::class,
'!==' => HHAST\ExclamationEqualEqualToken::class,
'>' => HHAST\GreaterThanToken::class,
'>=' => HHAST\GreaterThanEqualToken::class,
'>>' => HHAST\GreaterThanGreaterThanToken::class,
'>>=' => HHAST\GreaterThanGreaterThanEqualToken::class,
'#' => HHAST\HashToken::class,
'{' => HHAST\LeftBraceToken::class,
'[' => HHAST\LeftBracketToken::class,
'(' => HHAST\LeftParenToken::class,
'<' => HHAST\LessThanToken::class,
'<=' => HHAST\LessThanEqualToken::class,
'<=>' => HHAST\LessThanEqualGreaterThanToken::class,
'<<' => HHAST\LessThanLessThanToken::class,
'<<=' => HHAST\LessThanLessThanEqualToken::class,
'<?' => HHAST\LessThanQuestionToken::class,
'</' => HHAST\LessThanSlashToken::class,
'-' => HHAST\MinusToken::class,
'-=' => HHAST\MinusEqualToken::class,
'->' => HHAST\MinusGreaterThanToken::class,
'--' => HHAST\MinusMinusToken::class,
'%' => HHAST\PercentToken::class,
'%=' => HHAST\PercentEqualToken::class,
'+' => HHAST\PlusToken::class,
'+=' => HHAST\PlusEqualToken::class,
'++' => HHAST\PlusPlusToken::class,
'?' => HHAST\QuestionToken::class,
'?:' => HHAST\QuestionColonToken::class,
'?->' => HHAST\QuestionMinusGreaterThanToken::class,
'??' => HHAST\QuestionQuestionToken::class,
'??=' => HHAST\QuestionQuestionEqualToken::class,
'}' => HHAST\RightBraceToken::class,
']' => HHAST\RightBracketToken::class,
')' => HHAST\RightParenToken::class,
';' => HHAST\SemicolonToken::class,
'/' => HHAST\SlashToken::class,
'/=' => HHAST\SlashEqualToken::class,
'/>' => HHAST\SlashGreaterThanToken::class,
'*' => HHAST\StarToken::class,
'*=' => HHAST\StarEqualToken::class,
'**' => HHAST\StarStarToken::class,
'**=' => HHAST\StarStarEqualToken::class,
'~' => HHAST\TildeToken::class,
];
}