Ejemplo n.º 1
0
        private AstItem ReadFuncCall(TokenIterator tokens)
        {
            var name = tokens.PopExpected(TokenKind.Word);

            tokens.PopExpected(TokenKind.RoundBracketOpen);

            var paramValues      = ReadBreaketedList(tokens, TokenKind.RoundBracketOpen, TokenKind.RoundBracketClose, TokenKind.Comma);
            var paramExpressions = new List <AstItem>(paramValues.Count);

            foreach (var valueTokens in paramValues)
            {
                var expression = ReadExpression(new TokenIterator(valueTokens), null);
                paramExpressions.Add(expression);
            }

            return(AstItem.FunctionCall(name.Value, paramExpressions));
        }