Exemplo n.º 1
0
 public void InterpreteLabel()
 {
     if (!LabelScanned)
     {
         AST    CurrentAST = Input.Read();
         string Name       = ((AST)CurrentAST.Value).Value as string;
         OutputManager.RegisterLabelLocation(Name, Input.BackupPosition());
     }
 }
Exemplo n.º 2
0
        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.");
        }