public bool Visit(FormalParamSection node) { var paramSectionType = _symStack.FindType(node.ParamType.ToString()); if (paramSectionType == null) { throw new Exception(string.Format("({0}, {1}) semantic error: type '{2}' is not found", node.ParamType.Token.Line, node.ParamType.Token.Column, node.ParamType.ToString())); } foreach (var ident in node.ParamList) { CheckIdentifierDuplicateInScope(ident.Token); _symStack.AddParameter(node.ParamModifier, ident.ToString(), paramSectionType); } return(true); }