public NameRef(string name, int index, TreeConverter.access_level access_level, semantic_node_type semantic_node_type)
		{
			this.name = name;
			this.index = index;//4
            this.access_level = access_level;//1
            this.semantic_node_type = semantic_node_type;
		}
示例#2
0
        public SymScope CreateInterfaceInClassMember(string name, int offset)
        {
            SymScope dn = members[offset] as SymScope;

            if (dn != null)
            {
                return(dn);
            }
            int tmp = (int)br.BaseStream.Position;

            br.BaseStream.Seek(start_pos + offset, SeekOrigin.Begin);
            semantic_node_type snt = (semantic_node_type)br.ReadByte();

            switch (snt)
            {
            case semantic_node_type.class_field:
                dn = CreateInterfaceClassField(name, offset); break;

            case semantic_node_type.common_property_node:
                dn = CreateInterfaceProperty(name, offset); break;

            case semantic_node_type.common_method_node:
                dn = CreateInterfaceMethod(name, offset); break;
                //case semantic_node_type.class_constant_definition:
                //    dn = CreateInterfaceClassConstantDefinition(name, offset); break;
            }
            br.BaseStream.Seek(tmp, SeekOrigin.Begin);
            //ProcessWaitedToRestoreFields();
            return(dn);
        }
示例#3
0
        public SymScope CreateInterfaceMember(int offset, string name)
        {
            /*definition_node dn = (definition_node)members[offset];
             * if (dn != null)
             * {
             * //DarkStar Addes 06/03/07
             * PCUWriter.AddExternalMember(dn, offset);
             * return dn;
             * }*/
            SymScope dn = null;

            br.BaseStream.Seek(start_pos + offset, SeekOrigin.Begin);
            semantic_node_type snt = (semantic_node_type)br.ReadByte();

            switch (snt)
            {
            case semantic_node_type.namespace_variable:
                dn = CreateInterfaceNamespaceVariable(name, offset); break;

            case semantic_node_type.common_namespace_function_node:
                dn = CreateInterfaceNamespaceFunction(name, offset); break;

            case semantic_node_type.common_type_node:
                dn = CreateInterfaceCommonType(name, offset); break;

            case semantic_node_type.namespace_constant_definition:
                dn = CreateInterfaceConstantDefinition(name, offset); break;

                /*case semantic_node_type.compiled_type_node:
                 *  dn = CreateCompiledTypeNode(offset); break;
                 * //ssyy
                 * case semantic_node_type.template_type:
                 *  dn = CreateTemplateClass(offset); break;
                 * //\ssyy
                 * case semantic_node_type.ref_type_node:
                 *  dn = CreateRefType(offset); break;*/
            }
            br.BaseStream.Seek(start_pos, SeekOrigin.Begin);
            //PCUWriter.AddExternalMember(dn,offset);//ñîîáùàåì âðàéòåðó íîâîå ñìåùåíèå ñóùíîñòè
            //åñëè áóäåò ñåðèàëèçîâûâàòüñÿ ìîäóëü â êîòîðîì èñïîëüçóþòñÿ ñóùíîñòè .pcu, îí äîëæåí çíàòü èõ ñìåùåíèÿ
            //ProcessWaitedToRestoreFields();
            return(dn);
        }
示例#4
0
        private object CreateExpression(semantic_node_type snt)
        {
            //location loc = ReadDebugInfo();
            switch (snt)
            {
            /*case semantic_node_type.typeof_operator:
             *  return CreateTypeOfOperator();
             * case semantic_node_type.question_colon_expression:
             *  return CreateQuestionColonExpression();
             * case semantic_node_type.sizeof_operator:
             *  return CreateSizeOfOperator();
             * case semantic_node_type.is_node:
             *  return CreateIsNode();
             * case semantic_node_type.as_node:
             *  return CreateAsNode();
             * case semantic_node_type.compiled_static_method_call_node_as_constant:
             *  return CreateCompiledStaticMethodCallNodeAsConstant();
             * case semantic_node_type.common_namespace_function_call_node_as_constant:
             *  return CreateCommonNamespaceFunctionCallNodeAsConstant();
             * case semantic_node_type.compiled_constructor_call_as_constant:
             *  return CreateCompiledConstructorCallAsConstant();
             * case semantic_node_type.array_const:
             *  return CreateArrayConst();
             * case semantic_node_type.record_const:
             *  return CreateRecordConst();*/
            case semantic_node_type.float_const_node:
                return(CreateFloatConst());

            case semantic_node_type.byte_const_node:
                return(CreateByteConstNode());

            case semantic_node_type.int_const_node:
                return(CreateIntConstNode());

            case semantic_node_type.sbyte_const_node:
                return(CreateSByteConstNode());

            case semantic_node_type.short_const_node:
                return(CreateShortConstNode());

            case semantic_node_type.ushort_const_node:
                return(CreateUShortConstNode());

            case semantic_node_type.uint_const_node:
                return(CreateUIntConstNode());

            case semantic_node_type.ulong_const_node:
                return(CreateULongConstNode());

            case semantic_node_type.long_const_node:
                return(CreateLongConstNode());

            case semantic_node_type.double_const_node:
                return(CreateDoubleConstNode());

            case semantic_node_type.char_const_node:
                return(CreateCharConstNode());

            case semantic_node_type.bool_const_node:
                return(CreateBoolConstNode());

            case semantic_node_type.string_const_node:
                return(CreateStringConstNode());

                /*case semantic_node_type.basic_function_call:
                 *  return CreateBasicFunctionCall();
                 * case semantic_node_type.enum_const:
                 *  return CreateEnumConstNode();*/
            }
            //throw new Exception("Unknown expression "+snt);
            return(null);
        }
        private expression_node CreateExpression(semantic_node_type snt)
		{
            //location loc = ReadDebugInfo();
			switch (snt) {
                case semantic_node_type.exit_procedure:
                    return CreateExitProcedure();
                case semantic_node_type.typeof_operator:
                    return CreateTypeOfOperator();
                case semantic_node_type.statement_expression_node:
                    return CreateStatementsExpressionNode();
                case semantic_node_type.question_colon_expression:
                    return CreateQuestionColonExpression();
                case semantic_node_type.sizeof_operator:
                    return CreateSizeOfOperator();
                case semantic_node_type.is_node:
                    return CreateIsNode(); 
                case semantic_node_type.as_node:
                    return CreateAsNode();
                case semantic_node_type.compiled_static_method_call_node_as_constant:
                    return CreateCompiledStaticMethodCallNodeAsConstant();
                case semantic_node_type.common_namespace_function_call_node_as_constant:
                    return CreateCommonNamespaceFunctionCallNodeAsConstant();
                case semantic_node_type.compiled_constructor_call_as_constant:
                    return CreateCompiledConstructorCallAsConstant();
                case semantic_node_type.array_const:
                    return CreateArrayConst();
                case semantic_node_type.record_const:
                    return CreateRecordConst();
                case semantic_node_type.float_const_node:
                    return CreateFloatConst();
                case semantic_node_type.byte_const_node:
                    return CreateByteConstNode();
                case semantic_node_type.int_const_node:
                    return CreateIntConstNode();
                case semantic_node_type.sbyte_const_node:
                    return CreateSByteConstNode();
                case semantic_node_type.short_const_node:
                    return CreateShortConstNode();
                case semantic_node_type.ushort_const_node:
                    return CreateUShortConstNode();
                case semantic_node_type.uint_const_node:
                    return CreateUIntConstNode();
                case semantic_node_type.ulong_const_node:
                    return CreateULongConstNode();
                case semantic_node_type.long_const_node:
                    return CreateLongConstNode();
                case semantic_node_type.double_const_node:
                    return CreateDoubleConstNode();
                case semantic_node_type.char_const_node:
                    return CreateCharConstNode();
                case semantic_node_type.bool_const_node:
                    return CreateBoolConstNode();
                case semantic_node_type.string_const_node:
                    return CreateStringConstNode();
                case semantic_node_type.local_variable_reference:
                    return CreateLocalVariableReference();
                case semantic_node_type.local_block_variable_reference:
                    return CreateLocalBlockVariableReference();
                case semantic_node_type.namespace_variable_reference:
                    return CreateNamespaceVariableReference();
                case semantic_node_type.namespace_constant_reference:
                    return CreateNamespaceConstantReference();
                case semantic_node_type.function_constant_reference:
                    return CreateFunctionConstantReference();
                case semantic_node_type.basic_function_call:
                    return CreateBasicFunctionCall();
                case semantic_node_type.common_parameter_reference:
                    return CreateCommonParameterReference();
                case semantic_node_type.common_namespace_function_call:
                    return CreateCommonNamespaceFunctionCall();
                case semantic_node_type.common_in_function_function_call:
                    return CreateCommonInFuncFuncCall();
                case semantic_node_type.compiled_static_method_call:
                    return CreateCompiledStaticMethodCall();
                case semantic_node_type.while_break_node:
                    return CreateWhileBreakNode();
                case semantic_node_type.while_continue_node:
                    return CreateWhileContinueNode();
                case semantic_node_type.for_break_node:
                    return CreateForBreakNode();
                case semantic_node_type.for_continue_node:
                    return CreateForContinueNode();
                case semantic_node_type.repeat_break_node:
                    return CreateRepeatBreakNode();
                case semantic_node_type.repeat_continue_node:
                    return CreateRepeatContinueNode();
                case semantic_node_type.compiled_function_call:
                    return CreateCompiledFunctionCall();
                case semantic_node_type.compiled_constructor_call:
                    return CreateCompiledConstructorCall();
                case semantic_node_type.compiled_variable_reference:
                    return CreateCompiledVariableReference();
                case semantic_node_type.static_compiled_variable_reference:
                    return CreateStaticCompiledVariableReference();
                case semantic_node_type.simple_array_indexing:
                    return CreateSimpleArrayIndexing();
                case semantic_node_type.class_field_reference:
                    return CreateClassFieldReference();
                case semantic_node_type.common_constructor_call:
                    return CreateCommonConstructorCall();
                case semantic_node_type.common_method_call:
                    return CreateMethodCall();
                case semantic_node_type.common_static_method_call:
                    return CreateStaticMethodCall();
                case semantic_node_type.non_static_property_reference:
                    return CreateNonStaticPropertyReference();
                case semantic_node_type.static_class_field_reference:
                    return CreateStaticClassFieldReference();
                case semantic_node_type.this_node:
                    return CreateThisNode();
                case semantic_node_type.deref_node:
                    return CreateDerefNode();
                case semantic_node_type.get_addr_node:
                    return CreateGetAddrNode();
                case semantic_node_type.null_const_node:
                    return CreateNullConstNode();
                case semantic_node_type.enum_const:
                    return CreateEnumConstNode();
                case semantic_node_type.foreach_break_node: 
                    return CreateForeachBreakNode();
                case semantic_node_type.foreach_continue_node: 
                    return CreateForeachContinueNode();
                case semantic_node_type.common_constructor_call_as_constant:
                    return CreateCommonConstructorCallAsConstant();
                case semantic_node_type.basic_function_call_node_as_constant:
                    return CreateBasicFunctionCallAsConstant();
                case semantic_node_type.array_initializer:
                    return CreateArrayInitializer();
                case semantic_node_type.record_initializer:
                    return CreateRecordInitializer();
                case semantic_node_type.default_operator:
                    return CreateDefaultOperator();
                case semantic_node_type.compiled_static_field_reference_as_constant:
                    return CreateCompiledStaticFieldReferenceAsConstant();
                case semantic_node_type.nonstatic_event_reference:
                    return CreateNonStaticEventReference();
                case semantic_node_type.static_event_reference:
                    return CreateStaticEventReference();
			}
			throw new Exception("Unknown expression "+snt);
		}
		private object CreateExpression(semantic_node_type snt)
		{
            //location loc = ReadDebugInfo();
			switch (snt) {
                /*case semantic_node_type.typeof_operator:
                    return CreateTypeOfOperator();
                case semantic_node_type.question_colon_expression:
                    return CreateQuestionColonExpression();
                case semantic_node_type.sizeof_operator:
                    return CreateSizeOfOperator();
                case semantic_node_type.is_node:
                    return CreateIsNode(); 
                case semantic_node_type.as_node:
                    return CreateAsNode();
                case semantic_node_type.compiled_static_method_call_node_as_constant:
                    return CreateCompiledStaticMethodCallNodeAsConstant();
                case semantic_node_type.common_namespace_function_call_node_as_constant:
                    return CreateCommonNamespaceFunctionCallNodeAsConstant();
                case semantic_node_type.compiled_constructor_call_as_constant:
                    return CreateCompiledConstructorCallAsConstant();
                case semantic_node_type.array_const:
                    return CreateArrayConst();
                case semantic_node_type.record_const:
                    return CreateRecordConst();*/
                case semantic_node_type.float_const_node:
                    return CreateFloatConst();
                case semantic_node_type.byte_const_node:
                    return CreateByteConstNode();
                case semantic_node_type.int_const_node:
                    return CreateIntConstNode();
                case semantic_node_type.sbyte_const_node:
                    return CreateSByteConstNode();
                case semantic_node_type.short_const_node:
                    return CreateShortConstNode();
                case semantic_node_type.ushort_const_node:
                    return CreateUShortConstNode();
                case semantic_node_type.uint_const_node:
                    return CreateUIntConstNode();
                case semantic_node_type.ulong_const_node:
                    return CreateULongConstNode();
                case semantic_node_type.long_const_node:
                    return CreateLongConstNode();
                case semantic_node_type.double_const_node:
                    return CreateDoubleConstNode();
                case semantic_node_type.char_const_node:
                    return CreateCharConstNode();
                case semantic_node_type.bool_const_node:
                    return CreateBoolConstNode();
                case semantic_node_type.string_const_node:
                    return CreateStringConstNode();
                /*case semantic_node_type.basic_function_call:
                    return CreateBasicFunctionCall();
                case semantic_node_type.enum_const:
                    return CreateEnumConstNode();*/
			}
			//throw new Exception("Unknown expression "+snt);
			return null;
		}