/// <summary>
        /// run step 123.
        /// </summary>
        /// <returns></returns>
        public override Expr Parse()
        {
            var startToken = _tokenIt.NextToken;
            // 1. index number: it's 1 based so substract 1.
            var index     = Convert.ToDouble(_tokenIt.NextToken.Token.Text) - 1;
            var indexExpr = Exprs.Const(new LNumber(index), _tokenIt.NextToken);

            _tokenIt.Advance();

            // 2. "st" or "nd" or "rd" or "th"
            _tokenIt.Advance();

            // 3. identifier
            var ident     = _tokenIt.NextToken.Token.Text + "s";
            var identExpr = Exprs.Ident(ident, _tokenIt.NextToken);

            _tokenIt.Advance();

            return(Exprs.Index(identExpr, indexExpr, false, startToken));
        }