summaryrefslogtreecommitdiff
path: root/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression
diff options
context:
space:
mode:
authorElias Haugsbakk <[email protected]>2026-09-20 03:12:03 +0200
committerElias Haugsbakk <[email protected]>2026-09-20 03:12:03 +0200
commit1422d647cddb577fafc19ee97e33a394aefc560b (patch)
treeec993727b3eef658c59c1bc0bb92abf5badcbbd2 /src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression
parent561d9e45bff6c36d2580259c8fe05a2f4ec756dd (diff)
add rules to semantics analyzer
Diffstat (limited to 'src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression')
-rw-r--r--src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/FunctionCall.java9
-rw-r--r--src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/Identifier.java2
2 files changed, 10 insertions, 1 deletions
diff --git a/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/FunctionCall.java b/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/FunctionCall.java
index 3c46ec4..2537d9c 100644
--- a/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/FunctionCall.java
+++ b/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/FunctionCall.java
@@ -1,6 +1,7 @@
package no.eliashaugsbakk.kompilator.parsing.node.expression;
import java.util.List;
+import no.eliashaugsbakk.kompilator.parsing.Type;
/**
* Represents a function call statement (e.g., print("Hello, world")).
@@ -13,4 +14,12 @@ public class FunctionCall extends Expression {
this.functionName = functionName;
this.arguments = arguments;
}
+
+ public Type getReturnType() {
+ if (functionName.equals("skriv")) {
+ return new Type("void", false);
+ }
+ // TODO: Look up return type in function table when you add more functions
+ return null;
+ }
}
diff --git a/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/Identifier.java b/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/Identifier.java
index c1f475f..91607f8 100644
--- a/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/Identifier.java
+++ b/src/main/java/no/eliashaugsbakk/kompilator/parsing/node/expression/Identifier.java
@@ -4,7 +4,7 @@ package no.eliashaugsbakk.kompilator.parsing.node.expression;
* Resolves to a variable's value
*/
public class Identifier extends Expression {
- final String name;
+ public final String name;
public Identifier(String name) {
this.name = name;