internal LlGenerator(GMacMacro baseMacro) : base(baseMacro.ChildScope, new GMacValueAccessProcessor()) { BaseMacro = baseMacro; DataTable = new LlDataTable(GMacRootAst); }
/// <summary> /// Create a copy of this table with all items marked for delete being removed /// </summary> /// <returns></returns> public LlDataTable Duplicate() { var llDataTable = new LlDataTable(GMacRootAst) { _llVarEvaluationOrder = _llVarEvaluationOrder, _llVarIndex = _llVarIndex }; foreach (var llDataItem in _llDictionary.Where(pair => !pair.Value.IsDeleted).Select(pair => pair.Value.Duplicate()) ) { llDataTable._llDictionary.Add(llDataItem.ItemName, llDataItem); if (llDataItem.AssociatedValueAccess != null) { llDataTable._hlDictionary.Add(llDataItem.HlItemName, llDataItem); } } return(llDataTable); }