1/* 2 * Copyright (c) 2022-2025 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16import { global } from "../static/global" 17import { 18 ArrowFunctionExpression, 19 CallExpression, 20 ETSParameterExpression, 21 EtsScript, 22 ExpressionStatement, 23 FunctionDeclaration, 24 FunctionExpression, 25 IfStatement, 26 MethodDefinition, 27 // ScriptFunction, 28 StructDeclaration, 29 VariableDeclaration, 30 VariableDeclarator, 31 AssignmentExpression, 32 NumberLiteral 33} from "../types" 34import { MemberExpression } from "../to-be-generated/MemberExpression" 35import { AstNode } from "../peers/AstNode" 36 37export function isCallExpression(node: AstNode): node is CallExpression { 38 return node instanceof CallExpression 39} 40 41export function isMemberExpression(node: AstNode): node is MemberExpression { 42 return node instanceof MemberExpression 43} 44 45export function isFunctionDeclaration(node: AstNode): node is FunctionDeclaration { 46 return node instanceof FunctionDeclaration 47} 48 49export function isMethodDefinition(node: AstNode): node is MethodDefinition { 50 return global.es2panda._IsMethodDefinition(node.peer); 51} 52 53export function isEtsScript(node: AstNode): node is EtsScript { 54 return node instanceof EtsScript 55} 56 57export function isExpressionStatement(node: AstNode): node is ExpressionStatement { 58 return node instanceof ExpressionStatement 59} 60 61export function isArrowFunctionExpression(node: AstNode): node is ArrowFunctionExpression { 62 return node instanceof ArrowFunctionExpression 63} 64 65export function isStructDeclaration(node: AstNode): node is StructDeclaration { 66 return node instanceof StructDeclaration 67} 68 69export function isFunctionExpression(node: AstNode): node is FunctionExpression { 70 return node instanceof FunctionExpression 71} 72 73export function isEtsParameterExpression(node: AstNode): node is ETSParameterExpression { 74 return node instanceof ETSParameterExpression 75} 76 77export function isVariableDeclaration(node: AstNode): node is VariableDeclaration { 78 return node instanceof VariableDeclaration 79} 80 81// export function isScriptFunction(node: AstNode): node is ScriptFunction { 82// return node instanceof ScriptFunction 83// } 84 85export function isIfStatement(node: AstNode): node is IfStatement { 86 return node instanceof IfStatement 87} 88 89export function isVariableDeclarator(node: AstNode): node is VariableDeclarator { 90 return node instanceof VariableDeclarator 91} 92 93export function isAssignmentExpression(node: AstNode): node is AssignmentExpression { 94 return node instanceof AssignmentExpression; 95} 96 97export function isNumberLiteral(node: AstNode): node is NumberLiteral { 98 return node instanceof NumberLiteral; 99}