private ElementScope GetParameter(ProcScope func) { int offset = (int)br.BaseStream.Position - start_pos; br.ReadByte(); string s = br.ReadString(); TypeScope tn = GetTypeReference(); concrete_parameter_type cpt = (concrete_parameter_type)br.ReadByte(); ElementScope p = new ElementScope(new SymInfo(s, SymbolKind.Parameter, s), tn, null, null); bool is_params = br.ReadBoolean(); if (is_params) { p.param_kind = parametr_kind.params_parametr; } else { switch (cpt) { case concrete_parameter_type.cpt_const: p.param_kind = parametr_kind.const_parametr; break; case concrete_parameter_type.cpt_var: p.param_kind = parametr_kind.var_parametr; break; case concrete_parameter_type.cpt_none: p.param_kind = parametr_kind.none; break; } } br.ReadBoolean(); if (CanReadObject()) { br.ReadInt32(); //CreateExpression(); } br.ReadInt32(); //attributes //members[offset] = p; return(p); }
public common_parameter(string name, parameter_type pt, common_function_node cont_function, concrete_parameter_type conc_par_type, location loc) : base(name) { _par_type = pt; _cont_function = cont_function; _concrete_parameter_type = conc_par_type; _loc = loc; }
public common_parameter(string name, type_node tp, parameter_type pt, common_function_node cont_function, concrete_parameter_type conc_par_type, expression_node default_value, location loc) : base(name, tp) { _par_type = pt; _cont_function = cont_function; _concrete_parameter_type = conc_par_type; _default_value = default_value; _loc = loc; }
public common_parameter add_parameter(string name,SemanticTree.parameter_type pt, concrete_parameter_type cpt,location loc) { check_name_free(name,loc); #if (DEBUG) if (converting_block()!=block_type.function_block) { throw new CompilerInternalError("Parameters can be defined with functions only"); } #endif common_function_node top_func = _func_stack.top(); common_parameter cp=new common_parameter(name,pt,top_func,cpt,loc); top_func.parameters.AddElement(cp); top_func.scope.AddSymbol(name,new SymbolInfo(cp)); var_defs.Add(cp); return cp; }
public common_parameter(string name,type_node tp,SemanticTree.parameter_type pt, common_function_node cont_function, concrete_parameter_type conc_par_type,expression_node default_value, location loc): base(name,tp) { _par_type=pt; _cont_function=cont_function; _concrete_parameter_type = conc_par_type; _default_value = default_value; _loc = loc; }
public common_parameter(string name, SemanticTree.parameter_type pt, common_function_node cont_function, concrete_parameter_type conc_par_type, location loc) : base(name) { _par_type = pt; _cont_function = cont_function; _concrete_parameter_type = conc_par_type; _loc = loc; }