public void InterpreteLabel() { if (!LabelScanned) { AST CurrentAST = Input.Read(); string Name = ((AST)CurrentAST.Value).Value as string; OutputManager.RegisterLabelLocation(Name, Input.BackupPosition()); } }
private AST Maybe(params Parse[] parsers) { AST result = null; int BackedUpPosition = Input.BackupPosition(); foreach (Parse parser in parsers) { result = parser(); if (result == null) { Input.RecoverPosition(BackedUpPosition); continue; } else { return(result); } } throw new UnexpectedTokenException("Unknown error happened. Please check the input array."); }