예제 #1
0
        public override MacroToken VisitArguments(MacroParser.ArgumentsContext context)
        {
            var tokens = new MacroListToken();

            tokens.AddToken(new TextToken(context.LPAREN().GetText()));
            var argumentsTokens = Visit(context.args()) as MacroListToken;

            if (argumentsTokens != null)
            {
                tokens.AddRangeTokens(argumentsTokens.Tokens);
            }
            tokens.AddToken(new TextToken(context.RPAREN().GetText()));
            return(tokens);
        }
예제 #2
0
 private void HandleMacroListTokens(MacroToken token, ref MacroListToken collection)
 {
     if (token is MacroListToken)
     {
         collection.AddRangeTokens(((MacroListToken)token).Tokens);
     }
     else
     {
         collection.AddToken(token);
     }
 }
예제 #3
0
        public override MacroToken VisitMultipleArg([NotNull] MacroParser.MultipleArgContext context)
        {
            var tokens = new MacroListToken();

            if (context.WS(0) != null)
            {
                tokens.AddToken(new TextToken(context.WS(0).GetText()));
            }

            tokens.AddToken(new TextToken(context.COMMA().GetText()));

            var arg = Visit(context.mArg());

            HandleMacroListTokens(arg, ref tokens);

            if (context.WS(1) != null)
            {
                tokens.AddToken(new TextToken(context.WS(1).GetText()));
            }

            return(tokens);
        }