Ejemplo n.º 1
0
        public string Visit(String node)
        {
            var str        = node.AnchorToken.Lexeme;
            var codePoints = new CodePoints();
            var laLista    = codePoints.AsCodePoints(str);
            var sb         = new StringBuilder();

            sb.Append($"    i32.const 0\n");
            sb.Append($"    call $new\n");
            sb.Append($"    local.set $_temp\n");
            sb.Append($"    local.get $_temp\n");

            if (str == "")
            {
                return(sb.ToString());
            }

            foreach (var letter in laLista)
            {
                sb.Append($"    local.get $_temp\n");
            }

            foreach (var letter in laLista)
            {
                sb.Append($"    i32.const {letter}\n");
                sb.Append($"    call $add\n");
                sb.Append($"    drop\n");
            }

            return(sb.ToString());
        }
Ejemplo n.º 2
0
        public Utf8String TrimEnd()
        {
            CodePointReverseEnumerator it = CodePoints.GetReverseEnumerator();

            while (it.MoveNext() && UnicodeCodePoint.IsWhitespace(it.Current))
            {
            }

            return(Substring(0, it.PositionInCodeUnits));
        }
Ejemplo n.º 3
0
        public string Visit(Char node)
        {
            var chr        = node.AnchorToken.Lexeme;
            var codePoints = new CodePoints();
            var laLista    = codePoints.AsCodePoints(chr);
            var sb         = new StringBuilder();

            sb.Append($"    i32.const {laLista[0]}\n");

            return(sb.ToString());
        }
Ejemplo n.º 4
0
 public int LastIndexOf(UInt64[] codepoints)
 {
     return(ArrayUtil.LastIndexOfSubArray <UInt64>(CodePoints.ToArray(), codepoints));
 }
Ejemplo n.º 5
0
 public bool Same(UnicodeStream stream)
 {
     return(CodePoints.SequenceEqual(stream.CodePoints));
 }
Ejemplo n.º 6
0
 /// <inheritdoc />
 public override string ToString()
 {
     return(Utf32Utils.FromUtf32(CodePoints.AsSlice()));
 }