public ActionResult Factores() { if (Session["user"] == null) { return(RedirectToAction("Login")); } FACTOR factor = new FACTOR(); List <FACTOR> factores = factor.getFactores(); return(View(factores)); }
public ActionResult Propuesta() { if (Session["user"] == null) { return(RedirectToAction("Login")); } FACTOR factor = new FACTOR(); List <FACTOR> factores = factor.getFactores(); ViewBag.factores = factores; PLAZO plazo = new PLAZO(); List <PLAZO> plazos = plazo.getPrioridades(); ViewBag.prioridades = plazos; return(View(new PROYECTO())); }
/// <summary> /// Factor ::= Number /// | Identifier ["." Identifier" | "[" Expression "]" ] /// | "null" /// | "new" Identifier "(" ")" /// | "new" ("int" | Identifier) "[" Expression "]". /// </summary> private void generateFactor( ILGenerator il, FACTOR factor ) { if ( factor is NUMBER ) { int value = Int32.Parse((factor as NUMBER).number); il.Emit(OpCodes.Ldc_I4,value); } else if ( factor is NULL ) { il.Emit(OpCodes.Ldnull); } else if ( factor is SELECTOR ) { SELECTOR selector = factor as SELECTOR; if ( selector.field is FIELD ) { // Access to the member of an object // 1. Loading the object itself FIELD obj = selector.field as FIELD; if ( obj.isLocal ) il.Emit(OpCodes.Ldloc,obj.number); else if ( obj.isParameter ) { int off = currentMethod.isStatic ? 0 : 1; il.Emit(OpCodes.Ldarg,obj.number+off); } else if ( obj.isMember ) { if ( obj.isStatic ) il.Emit(OpCodes.Ldsfld,classes[currentClass.name].fieldBuilders[obj.name]); else { il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldfld,classes[currentClass.name].fieldBuilders[obj.name]); } } // 2. Taking the member of the object FIELD member = selector.member as FIELD; if ( member == null ) errors.issue(25); else il.Emit(OpCodes.Ldfld,classes[currentClass.name].fieldBuilders[member.name]); } else if ( selector.field is CLASS ) { // Access to the static class member il.Emit(OpCodes.Ldsfld,classes[currentClass.name].fieldBuilders[selector.sname]); } } else if ( factor is ARRAY_ELEM ) { ARRAY_ELEM arrayElem = factor as ARRAY_ELEM; FIELD array = arrayElem.field as FIELD; if (array == null) errors.issue(30); // Loading the array if ( array.isLocal ) il.Emit(OpCodes.Ldloc_S, array.number); else if ( array.isParameter ) { int off = currentMethod.isStatic ? 0 : 1; il.Emit(OpCodes.Ldarg_S, array.number+off); } else if ( array.isMember ) { FieldBuilder fb = classes[currentClass.name].fieldBuilders[array.name]; if ( array.isStatic ) il.Emit(OpCodes.Ldsfld, fb); else { il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldfld,fb); } } generateExpression(il,arrayElem.number); TYPE elemType = array.type; if ( elemType.classRef == null ) il.Emit(OpCodes.Ldelem,typeof(int)); else il.Emit(OpCodes.Ldelem,classes[elemType.classRef.name].typeBuilder); } else if ( factor is NAME ) // a simple name { FIELD field = (factor as NAME).field as FIELD; if ( field.isLocal ) il.Emit(OpCodes.Ldloc_S,field.number); else if ( field.isParameter ) { int off = currentMethod.isStatic ? 0 : 1; il.Emit(OpCodes.Ldarg_S,field.number+off); } else if ( field.isMember ) { FieldBuilder fb = classes[currentClass.name].fieldBuilders[field.name]; if ( field.isStatic ) il.Emit(OpCodes.Ldsfld,fb); else { il.Emit(OpCodes.Ldarg_0); il.Emit(OpCodes.Ldfld,fb); } } } else if ( factor is NEW_ARRAY ) { NEW_ARRAY array = factor as NEW_ARRAY; generateExpression(il, array.size); if ( array.classRef == null ) // new int[expr] il.Emit(OpCodes.Newarr,typeof(int)); else // new obj[expr] { Type arrType = classes[array.classRef.name].typeBuilder.MakeArrayType(); il.Emit(OpCodes.Newarr,arrType); } } else if ( factor is NEW ) { NEW neww = factor as NEW; if ( neww.classRef == null ) // new int { il.Emit(OpCodes.Ldc_I4_0); } else // new C { // TypeBuilder typeBuilder = classes[neww.classRef.name].typeBuilder; ConstructorBuilder cb = classes[neww.classRef.name].ctorBuilder; il.Emit(OpCodes.Newobj,cb); } } }