public CFor(Value seed, ParameterBlock whileBlock, ParameterBlock increment) { this.seed = seed; this.increment = increment; this.whileBlock = whileBlock; current = null; }
private void Deserialize(Stream input) { if (input.ReadValueU32(Endian.Big) != 0x44435800) // 'DCX\0' { throw new FormatException(); } if (input.ReadValueU32(Endian.Big) != 0x10000) { throw new FormatException(); } var headerSize = input.ReadValueU32(Endian.Big); if (headerSize != 24) { throw new FormatException(); } var unknown0C = input.ReadValueU32(Endian.Big); var unknown10 = input.ReadValueU32(Endian.Big); var unknown14 = input.ReadValueU32(Endian.Big); this._Size = new SizeBlock(); this._Size.Deserialize(input); this._Setup = new ParameterBlock(); this._Setup.Deserialize(input); this._Extra = new ExtraBlock(); this._Extra.Deserialize(input); }
public override Value Evaluate() { var stack = Runtime.State.Stack; var limit = stack.Pop(true, LOCATION); var seed = stack.Pop(true, LOCATION); return(new ArrayStream(seed, ParameterBlock.FromExecutable(limit))); }
private void CreateDefaultParameterBlock() { var parameterBlock = new ComObjectParameterBlock_T(); parameterBlock.Name = "ParameterPage"; parameterBlock.Text = Ressources.CommonParameters; ParameterBlock.Add(parameterBlock); }
public ArrayStream(Value seed, ParameterBlock next, Region region = null) { this.seed = seed; this.next = next; this.region = Region.CopyCurrent(region); limit = Runtime.MAX_ARRAY; ifBlock = defaultIf(); current = null; count = 0; }
public override Verb CreateVerb(string[] tokens) { Color(position, tokens[1].Length, KeyWords); var macroName = tokens[2]; Color(macroName.Length, Variables); Color(tokens[3].Length, Structures); var parametersParser = new ParametersParser(); if (parametersParser.Parse(source, NextPosition).If(out var parameters, out var index) && bodyParser.Parse(source, index).If(out var block, out var newIndex)) { var parameterBlock = new ParameterBlock(parameters, block, parameters.Splatting); overridePosition = newIndex; return(new CreateMacro(macroName, parameterBlock)); } return(null); }
public override Value Evaluate() { PseudoRecursion pseudoRecursion; if (Regions.VariableExists(name)) { var value = Regions[name]; if (!(value is PseudoRecursion)) { pseudoRecursion = new PseudoRecursion(name); Regions[name] = pseudoRecursion; } else { pseudoRecursion = (PseudoRecursion)value; } } else { pseudoRecursion = new PseudoRecursion(name); Regions.CreateVariable(name); Regions[name] = pseudoRecursion; } if (parameters.Length == 0) { pseudoRecursion.Initialization = block; } else { var parameterBlock = new ParameterBlock(parameters, block, parameters.Splatting); if (pseudoRecursion.TerminalExpression == null) { pseudoRecursion.TerminalExpression = parameterBlock; } else { pseudoRecursion.Main = parameterBlock; pseudoRecursion.Initialize(); } } result = ToString(); return(null); }
private void Open(object param) { try { if (_model != null) { var cancel = AskSaveCancel(); if (cancel) { return; } } var filePath = _dialogService.ChooseFileToOpen(_fileExtension, _fileFilter); if (filePath == null) { return; } _openFile = filePath; XmlSerializer serializer = new XmlSerializer(typeof(KNX)); using (var reader = new StreamReader(_openFile)) { _model = (KNX)serializer.Deserialize(reader); } if (File.Exists("knx_master.xml")) { using (var reader = new StreamReader("knx_master.xml")) { var masterData = (KNX)serializer.Deserialize(reader); _model.MasterData = masterData.MasterData; } } _manufacturerData = _model.ManufacturerData.First(); _hardware = _manufacturerData.Hardware.First(); _product = _hardware.Products.First(); _catalogSection = _manufacturerData.Catalog.First(); _catalogItem = _catalogSection.CatalogItem.First(); _hardware2Program = _hardware.Hardware2Programs.First(); _applicationProgram = _manufacturerData.ApplicationPrograms.First(); _appProgRef = _hardware2Program.ApplicationProgramRef.First(); _codeSegment = _applicationProgram.Static.Code.RelativeSegment.First(); Parameters.Clear(); foreach (var item in _applicationProgram.Static.Parameters.Parameter) { item.AllTypes = ParameterTypes; item.Type = ParameterTypes.First(t => t.Id == item.ParameterType); item.AllBlocks = ParameterBlock; item.Block = ParameterBlock.FirstOrDefault(t => t.ParameterRefRef.FirstOrDefault(o => _applicationProgram.Static.ParameterRefs.FirstOrDefault(p => o.RefId == p.Id)?.RefId == item.Id) != null); if (item.Block == null) { if (ParameterBlock.Count == 0) { CreateDefaultParameterBlock(); } item.Block = ParameterBlock.First(); } Parameters.Add(item); } RaiseChanged(); } catch (Exception ex) { ClearData(); _dialogService.ShowMessage(ex.ToString()); } }
public IfItem(ParameterBlock parameterBlock) => this.parameterBlock = parameterBlock;
public CreateMacro(string macroName, ParameterBlock parameterBlock) { this.macroName = macroName; this.parameterBlock = parameterBlock; }
public CFor CFor(ParameterBlock incrementBlock) => new CFor(seed, next, incrementBlock);