Пример #1
0
        public MethodEvaluatorBase(FunctionHeaderContext header, ClassEvaluator parent)
        {
            Header      = header;
            this.parent = parent;

            paramVariables.Add("this");
            paramVariables.AddRange(header.ParamNames);
        }
Пример #2
0
        internal static ConstructorEvaluator GenerateConstructor(ConstructorBuilder constructorBuilder, ClassEvaluator parent, string name)
        {
            var header = new FunctionHeaderContext(AccessModifiers.Public);

            header.Children.AddLast(new IdentifierContext()
            {
                Identifier = name
            });
            return(new ConstructorEvaluator(constructorBuilder, header, parent));
        }
Пример #3
0
        private static void CheckFunctionHeader(FunctionHeaderContext root, string returnType, Action <CompileException, Context> onError, SymbolTable table)
        {
            for (int i = 1; i < root.Children.Count - 2; i++)
            {
                var v = (VariableDefinitionContext)root.Children.ElementAt(i);

                table.RegisterVariable(v.Name, v.Type, v);
            }

            CheckScopeBody(root.Children.Last.Value, returnType, onError, table);
        }
Пример #4
0
 public MethodEvaluator(MethodBuilder methodBuilder, FunctionHeaderContext header, ClassEvaluator parent) : base(header, parent)
 {
     MethodBuilder = methodBuilder;
 }
Пример #5
0
 public ConstructorEvaluator(ConstructorBuilder constructorBuilder, FunctionHeaderContext header, ClassEvaluator parent) : base(header, parent)
 {
     ConstructorBuilder = constructorBuilder;
 }