예제 #1
0
        private Maybe <ILineNode> ParsePreprocessor(MergeableGenerator <Token> tokens, ImmutableStack <Closure> scopes)
        {
            head = tokens.Current;
            tokens.MoveNext();
            //Note: Not a ParseParamList because no commas.
            IList <IParamNode> paramList = ParsePreprocParamList(tokens, scopes);
            Maybe <ILineNode>  retVal    = directiveHandler.HandleDirective(this, head, paramList, tokens);

            if (!retVal.IsNothing)
            {
                CheckDataWrite(retVal.FromJust.Size);
                CurrentOffset += retVal.FromJust.Size;
            }
            return(retVal);
        }