private void GenerateVariableLoadContextInternal(CSTextDocumentBuilder text, string context, DOMEVariable variable, LookupBackedSet <string, string> settings) { IndexSituation index_situation = variable.GetVariableContextIndexSituation(); CSTextDocumentWriter code = text.CreateWriterWithVariablePairs( "TYPE", GetTypeConcept().GetStoreTypeName(), "SET_FUNCTION", settings.ConvertBool("custom_load_context", "LoadContextIntermediate" + variable.GetVariableFunctionName(), "Set" + variable.GetVariableFunctionName()), "CONTEXT", context, "GET_CONTEXT_FUNCTION", variable.GetVariableContext().GetGetContextFunctionName(), "INDEX", index_situation.GetIndex().ToString() ); string context_expression = "?CONTEXT.?GET_CONTEXT_FUNCTION()"; if (index_situation.IsShared()) { context_expression = "?CONTEXT.?GET_CONTEXT_FUNCTION(?INDEX)"; } if (settings.IsTrue("skip_context_conversion")) { code.Write("?SET_FUNCTION(" + context_expression + ");"); } else { string value_expression = GetTypeConcept().GetContextToTypeExpression(context_expression); if (GetTypeConcept().GetTypeName() != GetTypeConcept().GetStoreTypeName()) { value_expression = "(?TYPE)" + value_expression; } code.Write("?SET_FUNCTION(" + value_expression + ");"); } }
public DOMElement_RuleAtom_Variable() { get_variable_name = new OperationCache <string>("get_variable_name", delegate() { return(this.ConvertInfoValue <string>("name", () => GetVariableDefaultName(), s => s )); }); get_variable_type_context = new OperationCache <DOMEVariableTypeConcept>("get_variable_type_context", delegate() { return(this.ConvertInfoValue <DOMEVariableTypeConcept>("type", () => GetDefaultVariableTypeContext(), s => GetGrammarDefinition().GetTypeConcept(s) )); }); get_variable_type_container = new OperationCache <DOMEVariableType>("get_variable_type_container", delegate() { return(GetVariableTypeConcept().Wrap(IsVariableCollection())); }); get_variable_default_name = new OperationCache <string>("get_variable_default_name", delegate() { IndexSituation index_situation = this.GetVariableContextIndexSituation(); string context_default_variable_name = GetVariableContext().GetContextDefaultVariableName(); if (index_situation.IsShared()) { context_default_variable_name += (index_situation.GetIndex() + 1).ToString(); } if (IsVariableCollection()) { return(context_default_variable_name.StyleAsPluralWord()); } return(context_default_variable_name); }); get_info_settings = new OperationCache <LookupBackedSet <string, string> >("get_info_settings", delegate() { return(GetInfo().CreateBackedSet(DEFAULT_SETTING_VALUES)); }); }