Ejemplo n.º 1
0
        public override LatteParser.TypeContext VisitEId(LatteParser.EIdContext context)
        {
            var id = context.ID().GetText();

            if (id == "self")
            {
                if (_environment.CurrentClassName == null)
                {
                    Utils.StateUtils.InterruptWithMessage(context.start.Line, ErrorMessages.SelfOnlyInClassException);
                }

                return(new LatteParser.TTypeNameContext(_environment.CurrentClassName));
            }

            if (!_environment.NameToVarDef.ContainsKey(id))
            {
                Utils.StateUtils.InterruptWithMessage(context.start.Line, ErrorMessages.VarNotDefined(id));
            }

            return(_environment.NameToVarDef[id].Type);
        }
Ejemplo n.º 2
0
 public ID(LatteParser.EIdContext context)
 {
     Id = context.ID().GetText();
 }