Skip to content
Snippets Groups Projects
Commit 2808c997 authored by Nathan PERIER's avatar Nathan PERIER
Browse files

Added objects to manage variable assignements

parent 8241c79e
No related branches found
No related tags found
No related merge requests found
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="CheckStyle-IDEA-Module">
<option name="configuration">
<map />
</option>
</component>
</module>
\ No newline at end of file
package fr.insarennes.nperier.minichamo.language.assignement;
import fr.insarennes.nperier.minichamo.language.assignement.param.AssignementParam;
import fr.insarennes.nperier.minichamo.parsing.Context;
import java.util.ArrayList;
import java.util.List;
public class FunctionDef extends VariableDef {
private final List<AssignementParam> params;
public FunctionDef(String n, Context c, boolean isRecursive) {
super(n, c);
params = new ArrayList<>();
if(isRecursive) {
ctx.addVariable(this);
}
}
public void addParam(AssignementParam p) {
params.add(p);
}
public int getNbParams() {
return params.size();
}
}
package fr.insarennes.nperier.minichamo.language.assignement;
import fr.insarennes.nperier.minichamo.language.typing.Type;
import fr.insarennes.nperier.minichamo.parsing.Context;
public class ValueDef extends VariableDef {
private final Type type;
public ValueDef(String n, Context c, Type t) {
super(n, c);
type = t;
}
}
package fr.insarennes.nperier.minichamo.language.assignement;
import fr.insarennes.nperier.minichamo.parsing.Context;
public abstract class VariableDef {
protected final String name;
protected final Context ctx;
public VariableDef(String n, Context c) {
name = n;
ctx = c.duplicate();
}
public String getName() {
return name;
}
public Context getContext() {
return ctx;
}
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment