public override Reference VisitRefLocal([NotNull] LogicScriptParser.RefLocalContext context) { var name = context.VARIABLE().GetText().TrimStart('$'); if (!Context.Locals.TryGetValue(name, out var local)) { Context.Errors.AddError($"Local variable ${name} is not declared", context.Span()); return(new LocalReference(context.Span(), name, default)); } return(new LocalReference(context.Span(), name, local)); }
public override Expression VisitRefLocal([NotNull] LogicScriptParser.RefLocalContext context) { if (Context.IsInConstant) { Context.Errors.AddError("You can only reference constants from other constants", context.Span(), true); } var @ref = new ReferenceVisitor(Context).Visit(context); return(new ReferenceExpression(context.Span(), @ref)); }