From: bdemsky Date: Mon, 15 May 2006 19:49:07 +0000 (+0000) Subject: Checked in code to: X-Git-Tag: preEdgeChange~886 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=1f8274ea18d22d2519e7ceaf3764d7551c1ecc68;hp=ccfeddfa15db5a3aeed92ff1019d81e2853c3683;p=IRC.git Checked in code to: 1) Build parse tree for tasks 2) Type check flag expressions --- diff --git a/Robust/src/IR/State.java b/Robust/src/IR/State.java index a811df08..b2545392 100644 --- a/Robust/src/IR/State.java +++ b/Robust/src/IR/State.java @@ -80,6 +80,10 @@ public class State { return classes; } + public SymbolTable getTaskSymbolTable() { + return tasks; + } + public FlatMethod getMethodFlat(MethodDescriptor md) { return (FlatMethod)flatmethodmap.get(md); } diff --git a/Robust/src/IR/TaskDescriptor.java b/Robust/src/IR/TaskDescriptor.java index 96489bc8..47a92909 100644 --- a/Robust/src/IR/TaskDescriptor.java +++ b/Robust/src/IR/TaskDescriptor.java @@ -58,6 +58,10 @@ public class TaskDescriptor extends Descriptor { paramtable.add(vd); } + public FlagExpressionNode getFlag(VarDescriptor vd) { + return (FlagExpressionNode) flagstable.get(vd); + } + public int numParameters() { return params.size(); } diff --git a/Robust/src/IR/Tree/BuildIR.java b/Robust/src/IR/Tree/BuildIR.java index 0150b12e..c9368be4 100644 --- a/Robust/src/IR/Tree/BuildIR.java +++ b/Robust/src/IR/Tree/BuildIR.java @@ -63,13 +63,24 @@ public class BuildIR { if (isNode(pn,"flag_effect")) { String flagname=pn.getChild("name").getTerminal(); FlagEffects fe=new FlagEffects(flagname); - - - + parseFlagEffect(fe, pn.getChild("flag_list")); return fe; } else throw new Error(); } + public void parseFlagEffect(FlagEffects fes, ParseNode pn) { + ParseNodeVector pnv=pn.getChildren(); + for(int i=0;i