Lines Matching defs:expr
72 const ir::Identifier *expr)
74 if (expr->Name() == "NaN") {
77 if (expr->Name() == "Infinity") {
81 binder::Variable *enumMember = expr->AsIdentifier()->Variable();
84 checker->ThrowTypeError({"Cannot find name ", expr->AsIdentifier()->Name()},
105 const ir::UnaryExpression *expr)
107 binder::EnumMemberResult value = TSEnumDeclaration::EvaluateEnumMember(checker, enumVar, expr->Argument());
112 switch (expr->OperatorType()) {
132 const ir::MemberExpression *expr)
134 if (checker::Checker::IsConstantMemberAccess(expr->AsExpression())) {
135 if (expr->Check(checker)->TypeFlags() == checker::TypeFlag::ENUM) {
137 if (!expr->IsComputed()) {
138 name = expr->Property()->AsIdentifier()->Name();
140 ASSERT(checker::Checker::IsStringLike(expr->Property()));
141 name = reinterpret_cast<const ir::StringLiteral *>(expr->Property())->Str();
152 const ir::BinaryExpression *expr)
155 TSEnumDeclaration::EvaluateEnumMember(checker, enumVar, expr->AsBinaryExpression()->Left());
157 TSEnumDeclaration::EvaluateEnumMember(checker, enumVar, expr->AsBinaryExpression()->Right());
159 switch (expr->AsBinaryExpression()->OperatorType()) {
205 expr->AsBinaryExpression()->OperatorType() == lexer::TokenType::PUNCTUATOR_PLUS) {
217 const ir::AstNode *expr)
219 switch (expr->Type()) {
221 return EvaluateUnaryExpression(checker, enumVar, expr->AsUnaryExpression());
224 return EvaluateBinaryExpression(checker, enumVar, expr->AsBinaryExpression());
227 return expr->AsNumberLiteral()->Number();
230 return expr->AsStringLiteral()->Str();
233 return EvaluateIdentifier(checker, enumVar, expr->AsIdentifier());
236 return EvaluateEnumMember(checker, enumVar, expr->AsMemberExpression());