/// <summary> /// Parses the time expression. /// - 12pm /// - 12:30pm /// - 12:30 pm /// </summary> /// <returns></returns> public override Expr Parse() { var startToken = _tokenIt.NextToken; var time = ParseTime(this, false, false); return(Exprs.Const(new LTime(time), startToken)); }
/// <summary> /// Parses the day expression. /// Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday /// </summary> /// <returns></returns> public override Expr Parse() { var startToken = _tokenIt.NextToken; _tokenIt.Advance(); var word = _tokenIt.NextToken.Token.Text; _tokenIt.Advance(); return(Exprs.Const(new LString(word), startToken)); }
/// <summary> /// @addwords( nasdaq, fluent script ) /// </summary> /// <returns></returns> public override Expr Parse() { var startToken = _tokenIt.NextToken; if (_idCount > 0) { _tokenIt.Advance(_idCount); } // Finally move past this plugin. _tokenIt.Advance(); return(Exprs.Const(new LString(_word), startToken)); }
/// <summary> /// Sorts expression /// </summary> /// <returns></returns> public override Expr Parse(object context) { var constExp = context as ConstantExpr; var ctx = _parser.Context; var t = _tokenIt.Advance(); var lobj = (LObject)constExp.Value; // Validate. if (lobj.Type != LTypes.Number) { throw _tokenIt.BuildSyntaxException("number required when using units : " + t.Token.Text, t); } var lval = ((LNumber)lobj).Value; var result = ctx.Units.ConvertToUnits(lval, t.Token.Text); var lclass = LangTypeHelper.ConvertToLangUnit(result); var finalExp = Exprs.Const(lclass, t); // Move past the plugin. _tokenIt.Advance(); return(finalExp); }