internal static LeftValue /*!*/ MakeLeftValue(int kind, Parser /*!*/ parser, string name, SourceSpan location)
        {
            switch (kind)
            {
            case Identifier:
                return(parser.CurrentScope.ResolveOrAddVariable(name, location));

            case Instance:
                return(new InstanceVariable(name, location));

            case Global:
                return(new GlobalVariable(name, location));

            case Constant:
                return(new ConstantVariable(name, location));

            case Class:
                return(new ClassVariable(name, location));

            case Nil:
                return(parser.CannotAssignError("nil", location));

            case Self:
                return(parser.CannotAssignError("self", location));

            case True:
                return(parser.CannotAssignError("true", location));

            case False:
                return(parser.CannotAssignError("false", location));

            case File:
                return(parser.CannotAssignError("__FILE__", location));

            case Line:
                return(parser.CannotAssignError("__LINE__", location));

            case Encoding:
                return(parser.CannotAssignError("__ENCODING__", location));
            }

            return(null);
        }
Пример #2
0
        /*!*/
        internal static LeftValue MakeLeftValue(int kind, Parser/*!*/ parser, string name, SourceSpan location)
        {
            switch (kind) {
                case Identifier:
                    return parser.CurrentScope.ResolveOrAddVariable(name, location);

                case Instance:
                    return new InstanceVariable(name, location);

                case Global:
                    return new GlobalVariable(name, location);

                case Constant:
                    return new ConstantVariable(name, location);

                case Class:
                    return new ClassVariable(name, location);

                case Nil:
                    return parser.CannotAssignError("nil", location);

                case Self:
                    return parser.CannotAssignError("self", location);

                case True:
                    return parser.CannotAssignError("true", location);

                case False:
                    return parser.CannotAssignError("false", location);

                case File:
                    return parser.CannotAssignError("__FILE__", location);

                case Line:
                    return parser.CannotAssignError("__LINE__", location);

                case Encoding:
                    return parser.CannotAssignError("__ENCODING__", location);
            }

            return null;
        }