private static CompileResult SolveInNode(ASTNode node, Domain currentDomain) { return(node switch { NamespaceDirectiveNode namespaceDirective => SolveNamespaceElements(namespaceDirective, currentDomain), ClassDeclNode classDeclNode => SolveClassDecl(classDeclNode, currentDomain), _ => new CompileResult(true) });
private static CompileResult DetectInNode(ASTNode node, Domain currentDomain) { return(node switch { ClassDeclNode classDeclNode => DetectClassDecl(classDeclNode, currentDomain), NamespaceDirectiveNode namespaceDirective => DetectNamespaceDecl(namespaceDirective, currentDomain), _ => new CompileResult(true) });
private static CompileResult DefineType(ASTNode node, Domain domain) { return(node switch { NamespaceDirectiveNode namespaceDirective => DefineNamespaceElements(namespaceDirective, domain), ClassDeclNode classDecl => DefineClass(classDecl, domain), FuncDeclNode funcDecl => DefineFunc(funcDecl, domain), _ => new CompileResult(true) });