package compiler;

import java.util.ArrayList;
import java.util.List;

/**
 * Gestion des fonctions, de leur type et paramètres
 *
 */
public class IdFun extends Ident {

	private List<Parameter> parameters; 
	
	/****************************************
	 * Sous-classe pour gérer les paramètres.
	 ****************************************/
	class Parameter {
		String name;
		IdVar id;
		
		/* Constructeur */
		public Parameter(String n, IdVar p) {
			name = n;
			id = p;
		}
		
		/* GetSet */
		public String getName(){ return name; }
		public IdVar getIdent(){ return id; }

		
		public String toString(){
			return name+" "+id;
		}
		
	}
	
	// Contructeur de fonction sans paramètre
	public IdFun(Type t) {
		super(t); // type de retour
		parameters =  new ArrayList<Parameter>();
	}
	
	public List<Parameter> getParameters(){
		return parameters;
	}
	/**
	 * Ajoute un paramètre à la fonction
	 */
	public void addParameter(String name, IdVar p){
		parameters.add(new Parameter(name, p));
	}
	
	/**
	 * String output for debug purpose
	 */
	public String toString(){
		String s = new String("FONCTION\n");
		for (Parameter i : parameters) {
			s += i;
		}
		return s;
	}
}

@@ -120,16 +120,17 @@
 ram%C3%A8tres
+.
 %0A *%0A */%0A
@@ -164,16 +164,56 @@
 Ident %7B%0A
+%09%0A%09static private IdFun currentFunction;
 %0A%09privat
@@ -241,17 +241,16 @@
 ameters;
- 
 %0A%09%0A%09/***
@@ -825,16 +825,207 @@
 );%0A%09%7D%0A%09%0A
+%09/* GetSet */%0A%09public static IdFun getCurrentFunction() %7B return currentFunction; %7D%0A%09public static void setCurrentFunction(IdFun currentFunction) %7B IdFun.currentFunction = currentFunction; %7D%0A
 %09public 
@@ -1056,19 +1056,17 @@
 eters()%7B
-%0A%09%09
+ 
 return p
@@ -1075,19 +1075,19 @@
 ameters;
-%0A%09%7D
+ %7D%0A
 %0A%09/**%0A%09 

Add currentValue