public static void ParseEndRegion(MoveInfo parentInfo, ParsingInfo parsingInfo, ScriptInfo scriptInfo) { MoveInfo moveInfo = new MoveInfo(parentInfo); List <IElement> content = new List <IElement>(2); content.Add(moveInfo.Current); content.Add(moveInfo.Move(SearchDirection.LeftToRight)); IBlock region = new PreProcessorRegion(content); parentInfo.Replace(2, region); }
public static bool Check(MoveInfo parentInfo, ParsingInfo parsingInfo, ScriptInfo scriptInfo) { IElement next = parentInfo.Find(SearchDirection.LeftToRight, SearchVisibility.Visible); if (next == null) { return(false); } if (DevCode.Check(parentInfo, parsingInfo, scriptInfo) || PreProcessorRegion.Check(parentInfo, parsingInfo, scriptInfo)) { return(true); } if (EmptyStatement.Check(parentInfo, parsingInfo, scriptInfo) || BlockStatement.Check(parentInfo, parsingInfo, scriptInfo) ) { return(true); } if (IfElseStatement.Check(parentInfo, parsingInfo, scriptInfo) || SwitchStatement.Check(parentInfo, parsingInfo, scriptInfo) || WhileStatement.Check(parentInfo, parsingInfo, scriptInfo) || DoWhileStatement.Check(parentInfo, parsingInfo, scriptInfo) || ForStatement.Check(parentInfo, parsingInfo, scriptInfo) || ForEachStatement.Check(parentInfo, parsingInfo, scriptInfo) || ReturnStatement.Check(parentInfo, parsingInfo, scriptInfo) || BreakStatement.Check(parentInfo, parsingInfo, scriptInfo) || ContinueStatement.Check(parentInfo, parsingInfo, scriptInfo) || WaitStatement.Check(parentInfo, parsingInfo, scriptInfo) || WaittillFrameEndStatement.Check(parentInfo, parsingInfo, scriptInfo) ) { return(true); } if (ExpressionStatement.Check(parentInfo, parsingInfo, scriptInfo, true)) // nikdy nevráti false? { return(true); } return(false); }
public static void ParseRegion(MoveInfo parentInfo, ParsingInfo parsingInfo, ScriptInfo scriptInfo) { MoveInfo moveInfo = new MoveInfo(parentInfo); List <IElement> content = new List <IElement>(); content.Add(moveInfo.Current); content.Add(moveInfo.Move(SearchDirection.LeftToRight)); moveInfo.Move(SearchDirection.LeftToRight); int nameStart = moveInfo.CurrentIndex; IElement end = moveInfo.Find(SearchDirection.LeftToRight, SearchVisibility.Unvisible, IsRegionEnd); if (end == null) { throw new SyntaxException("Bad region syntax", parentInfo.GetErrorInfo()); } content.AddRange(moveInfo.CurrentElements.GetRange(nameStart, moveInfo.CurrentIndex - nameStart)); IBlock region = new PreProcessorRegion(content); parentInfo.Replace(moveInfo.CurrentIndex - parentInfo.CurrentIndex, region); }
public override IElement CreateCopy() { PreProcessorRegion e = new PreProcessorRegion(this.CopyChildren()); return(e); }