public override object VisitParameter(ParameterContext context) { var p = (new Parameter()); var id = (Result)(Visit(context.id())); p.id = id.text; p.permission = id.permission; if (context.annotationSupport() != null) { p.annotation = (string)(Visit(context.annotationSupport())); } if (context.expression() != null) { p.value = (new System.Text.StringBuilder().Append("= ").Append(((Result)(Visit(context.expression()))).text)).to_str(); } p.type = (string)(Visit(context.typeType())); if (context.Comma_Comma_Comma() != null) { p.type = (new System.Text.StringBuilder().Append("params ").Append(p.type).Append("[]")).to_str(); } if (context.Bang() != null) { p.type = (new System.Text.StringBuilder().Append("ref ").Append(p.type)).to_str(); } return(p); }