private void VisitFunctionConstant(function_constant_definition cnst) { SavePosition(cnst); bw.Write(cnst.name); SaveExpressionAndOffset(cnst.const_value); bw.Write(0); //VisitExpression((expression_node)cnst.const_value); }
public function_constant_reference(function_constant_definition cdn, location loc) : base(cdn.type, loc) { this.cdn = cdn; }
public constant_definition_node add_const_definition(string name,location loc) { constant_definition_node cdn=null; //cdn.loc=loc; switch (converting_block()) { case block_type.function_block: { common_function_node top_func = _func_stack.top(); function_constant_definition fcd = new function_constant_definition(name, loc, top_func); top_func.scope.AddSymbol(name,new SymbolInfo(fcd)); top_func.constants.AddElement(fcd); cdn = fcd; break; } case block_type.type_block: { class_constant_definition ccd = new class_constant_definition(name, loc, _ctn); _ctn.Scope.AddSymbol(name,new SymbolInfo(ccd)); _ctn.const_defs.AddElement(ccd); cdn = ccd; break; } case block_type.namespace_block: { namespace_constant_definition ncd = new namespace_constant_definition(name, loc, _cmn); _cmn.scope.AddSymbol(name,new SymbolInfo(ncd)); _cmn.constants.AddElement(ncd); cdn = ncd; break; } } return cdn; }
private function_constant_definition GetFunctionConstant(common_function_node func) { int offset = (int)br.BaseStream.Position-start_pos; //int tmp=br.ReadByte(); function_constant_definition fcd = new function_constant_definition(br.ReadString(),null,func); //members[offset] = lv; AddMember(fcd, offset); fcd.const_value = CreateExpressionWithOffset() as constant_node; return fcd; }