/// <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)); }