public override void Visit(FormalParamNode node) { if (node.Id.IdOperations?.Count > 0) { throw new SemanticException($"Error on line {node.line}: Invalid field or array access on declaration of parameter {node.Id.Id}."); } if (!(symbolTable.GlobalScope.Symbols.ContainsKey(node.Type) || node.Type == "int" || node.Type == "float" || node.Type == "bool" || node.Type == "string" || node.Type == "void" || node.Type == "int[]" || node.Type == "float[]" || node.Type == "bool[]" || node.Type == "string[]" || symbolTable.GlobalScope.Symbols.ContainsKey(node.Type.Replace("[]", "")))) { throw new SemanticException($"Error on line {node.line}: Invalid return type {node.Type} declared on {node.Id.Id}."); } symbolTable.EnterSymbol(node.Id.Id, node); }
public override void Visit(FormalParamNode node) { //if (node.Type.Contains("[]")) if (node.IsArray) { CSharpString.Append("List<"); } CSharpString.Append(node.Type.Replace("[]", "")); // tilføjet et tjek på om det er et struct, hvis det er så tilføjer vi _ efter typen. if (!IsPrimitiveType(node.Type.Replace("[]", ""))) { CSharpString.Append("_"); } //if (node.Type.Contains("[]")) if (node.IsArray) { CSharpString.Append("> "); } CSharpString.Append(" "); node.Id.Accept(this); }
internal abstract void Visit(FormalParamNode node);
public override void Visit(FormalParamNode node) { Console.Write(node.Type + " "); node.Id.Accept(this); }
public abstract void Visit(FormalParamNode node);