public override Verb CreateVerb(string[] tokens) { Color(position, length, IDEColor.EntityType.Structures); var index = position + length; var block = OrangeCompiler.ParseBlock(source, ref index, ")"); overridePosition = index; return(new CreateReadOnlyArray(block)); }
public override Verb CreateVerb(string[] tokens) { Color(position, length, IDEColor.EntityType.Structure); var index = position + length; var block = OrangeCompiler.ParseBlock(source, ref index, "}"); result.Value = block; overridePosition = index; return(new NullOp()); }
public override Verb CreateVerb(string[] tokens) { Color(position, tokens[1].Length, IDEColor.EntityType.Whitespaces); var className = tokens[2]; Color(className.Length, IDEColor.EntityType.Variables); Color(tokens[3].Length, IDEColor.EntityType.Structures); var index = position + length; var block = OrangeCompiler.ParseBlock(source, ref index, "}"); overridePosition = index; return(new SendNewMessage(className, block)); }
public bool Parse(string source, ref int index, out Arguments arguments) { if (matcher.IsMatch(source.Substring(index), "^/s* '->' /s* '('")) { var length = matcher[0].Length; Parser.Color(index, length, IDEColor.EntityType.Structure); index += length; var block = OrangeCompiler.ParseBlock(source, ref index, ")"); arguments = new Arguments(block); return(true); } arguments = null; return(false); }
public override void Render(StringWriter writer, string variableName) { Stack.Push(text); writer.Write($"|<{text}"); if (attributes.IsNotEmpty()) { var index = 0; var block = OrangeCompiler.ParseBlock(attributes, ref index, ""); var value = block.Evaluate(); if (value != null) { switch (value.Type) { case Value.ValueType.Array: var attributesText = getAttributes((Array)value.Resolve()); writer.WriteLine($" {attributesText}>|.write('{variableName}');"); break; case Value.ValueType.KeyedValue: var attributeText = getAttribute((KeyedValue)value); writer.WriteLine($" {attributeText}>|.write('{variableName}');"); break; default: writer.WriteLine($">|.write('{variableName}');"); break; } } else { writer.WriteLine($">|.write('{variableName}');"); } } else { writer.WriteLine($">|.write('{variableName}');"); } }