/// <summary> /// Set type for parameter /// </summary> /// <param name="context"></param> /// <returns></returns> public override object VisitArg_declaration([NotNull] Arg_declarationContext context) { var type = ResolveType(context.type(), currentScope); var argSymbol = context.identifier().Symbol as ParameterSymbol; argSymbol.SetType(type); return(context.identifier()); }
/// <summary> /// Define parameter of function /// </summary> /// <param name="context"></param> public override void EnterArg_declaration([NotNull] Arg_declarationContext context) { var identityContext = context.identifier(); ParameterSymbol parameterSymbol = new ParameterSymbol(identityContext.GetText()) { DefNode = identityContext }; identityContext.Symbol = parameterSymbol; identityContext.Scope = currentScope; Define(parameterSymbol); }