implement context analysis

This commit is contained in:
2020-02-04 19:21:34 +01:00
parent 33904a3c33
commit 6981c288e6
2 changed files with 78 additions and 5 deletions

View File

@@ -8,6 +8,7 @@ import java.io.*;
import java.util.Arrays;
import java.util.List;
import java.util.HashMap;
import java.util.HashSet;
import de.hsrm.compiler.Klang.nodes.Node;
import de.hsrm.compiler.Klang.visitors.*;
@@ -90,8 +91,12 @@ public class Klang {
var functionDefinitions = new HashMap<String, FunctionInformation>();
new GetFunctions(functionDefinitions).visit(tree);
// Extract information about all structs
var structs = new HashSet<String>();
new GetStructs(structs).visit(tree);
// Create the DAST
ContextAnalysis ctxAnal = new ContextAnalysis(functionDefinitions);
ContextAnalysis ctxAnal = new ContextAnalysis(functionDefinitions, structs);
root = ctxAnal.visit(tree);
} catch (Exception e) {
System.err.println(e.getMessage());