/// <summary> /// Creates a return quadruple. /// </summary> /// <returns>The return quadruple.</returns> /// <param name="id">Identifier.</param> public static SemanticEnum CreateReturnQuadruple(string id) { Variable returnVariable = null; if (id != "") { returnVariable = ProgramMemory.FindVariable(scope, id); } // Validate return type SemanticEnum returnStatus = Semantics.ValidateReturn(scope.type, returnVariable); if (returnStatus == SemanticEnum.ValidReturn) { scope.SetEnd(Quadruple.quadruples.Count); Quadruple quadruple = new Quadruple(Operators.Return, returnVariable); PushQuadruple(quadruple); } return(returnStatus); }
void Function() { scope = FunctionHeader(); Quadruple.scope = scope; while (StartOf((int)TokenEnum.Id)) { Declaration(); } while (StartOf((int)TokenEnum.Number)) { Statute(); } string id = ""; id = Return(); SemanticEnum returnStatus = Quadruple.CreateReturnQuadruple(id); if (returnStatus != SemanticEnum.ValidReturn) { SemErr((int)returnStatus); } EndFunction(); }
public SemanticCompatibility(SemanticEnum type, double confidence) { mType = type; mConfidence = confidence; }