Skip to content
Snippets Groups Projects
Select Git revision
  • 9f4866f432f68527b1b7f3876d2770dc3780846f
  • master default protected
  • release/1.1.4
  • release/1.1.3
  • release/1.1.1
  • 1.4.1
  • 1.4.0
  • 1.3.0
  • 1.2.1
  • 1.2.0
  • 1.1.5
  • 1.1.4
  • 1.1.3
  • 1.1.1
  • 1.1.0
  • 1.0.9
  • 1.0.8
  • 1.0.7
  • v1.0.5
  • 1.0.5
20 results

RecursiveFunktion.java

Blame
  • Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    RecursiveFunktion.java 1.31 KiB
    package de.tla2b.analysis;
    
    import de.tla2b.exceptions.NotImplementedException;
    import tla2sany.semantic.OpApplNode;
    import tla2sany.semantic.OpDefNode;
    import tlc2.tool.BuiltInOPs;
    
    public class RecursiveFunktion extends BuiltInOPs {
    
    	private OpDefNode def;
    	private OpApplNode rfs;
    	private OpApplNode ifThenElse;
    
    	public RecursiveFunktion(OpDefNode n, OpApplNode rfs)
    			throws NotImplementedException {
    		def = n;
    		this.rfs = rfs;
    		//evalDef();
    	}
    
    
    //	/**
    //	 * @throws NotImplementedException
    //	 * 
    //	 */
    //	private void evalDef() throws NotImplementedException {
    //		ExprOrOpArgNode e = rfs.getArgs()[0];
    //		//System.out.println(rfs.toString(5));
    //		if (e instanceof OpApplNode) {
    //			OpApplNode o = (OpApplNode) e;
    //			switch (getOpCode(o.getOperator().getName())) {
    //			case OPCODE_ite: { // IF THEN ELSE
    //				ifThenElse = o;
    //				return;
    //			}
    //			}
    //			throw new NotImplementedException(
    //					"Only IF/THEN/ELSE or CASE constructs are supported at the body of a recursive function.");
    //		} else {
    //			throw new NotImplementedException(
    //					"Only IF/THEN/ELSE or CASE constructs are supported at the body of a recursive function.");
    //		}
    //	}
    
    	public OpDefNode getOpDefNode() {
    		return def;
    	}
    
    	public OpApplNode getRF() {
    		return rfs;
    	}
    
    	public OpApplNode getIfThenElse() {
    		return ifThenElse;
    	}
    }