diff options
Diffstat (limited to 'source/slang/expr-defs.h')
| -rw-r--r-- | source/slang/expr-defs.h | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/source/slang/expr-defs.h b/source/slang/expr-defs.h index 0dac324b9..dc93407e0 100644 --- a/source/slang/expr-defs.h +++ b/source/slang/expr-defs.h @@ -56,11 +56,21 @@ SYNTAX_CLASS(InitializerListExpr, ExpressionSyntaxNode) SYNTAX_FIELD(List<RefPtr<ExpressionSyntaxNode>>, args) END_SYNTAX_CLASS() +// A base class for expressions with arguments +ABSTRACT_SYNTAX_CLASS(ExprWithArgsBase, ExpressionSyntaxNode) + SYNTAX_FIELD(List<RefPtr<ExpressionSyntaxNode>>, Arguments) +END_SYNTAX_CLASS() + +// An aggregate type constructor +SYNTAX_CLASS(AggTypeCtorExpr, ExprWithArgsBase) + SYNTAX_FIELD(TypeExp, base); +END_SYNTAX_CLASS() + + // A base expression being applied to arguments: covers // both ordinary `()` function calls and `<>` generic application -ABSTRACT_SYNTAX_CLASS(AppExprBase, ExpressionSyntaxNode) +ABSTRACT_SYNTAX_CLASS(AppExprBase, ExprWithArgsBase) SYNTAX_FIELD(RefPtr<ExpressionSyntaxNode>, FunctionExpr) - SYNTAX_FIELD(List<RefPtr<ExpressionSyntaxNode>>, Arguments) END_SYNTAX_CLASS() SIMPLE_SYNTAX_CLASS(InvokeExpressionSyntaxNode, AppExprBase) |
