private Expression CreateWord(IEnumerable <Expression> contents) { Expression word = String.Expressions.New(); word = CompilerUtils.StringConcat(word, contents); word = word.StripConversions(); word = Wrap(word); return(word.Cast <iObject>()); }
public override Expression Compile() { var first = String.Expressions.New(); var contents = Node.Select(_ => _.Accept(Compiler)); var body = CompilerUtils.StringConcat(first, contents); body = ((UnaryExpression)body).Operand; body = body.Cast <string>(); var symbol = Symbol.Expressions.New(body); return(symbol.Cast <iObject>()); }
public override Expression Compile() { var first = base.Compile(); var count = Node.List.Count; if (count == 0) { return(first); } var contents = Node.Select(_ => _.Accept(Compiler)); first = first.StripConversions(); return(CompilerUtils.StringConcat(first, contents)); }
public override Expression Compile() { foreach (var child in Node.Where(_ => _.Token?.Type == tSTRING_CONTENT)) { // copy dedent value to children if dedents property is set in Node child.Token.MergeProperties(Node.Token); } if (IsSimpleContent()) { return(Node[0].Accept(Compiler)); } var count = Node.List.Count; var contents = Node.Select(_ => _.Accept(Compiler)); return(CompilerUtils.StringConcat(String.Expressions.New(), contents)); }