JSDOC/TextStream.vala
authorAlan Knowles <alan@roojs.com>
Thu, 10 Sep 2015 09:48:09 +0000 (17:48 +0800)
committerAlan Knowles <alan@roojs.com>
Thu, 10 Sep 2015 09:48:09 +0000 (17:48 +0800)
JSDOC/TextStream.vala

index 277b518..cc0c364 100644 (file)
@@ -29,34 +29,34 @@ namespace JSDOC {
             this.cursor = 0;
         }
         
-        public char look(int n = 0) {
+        public TextStreamChar look(int n = 0) {
                 
                 
             if (this.cursor+n < 0 || this.cursor+n >= this.text.length) {
-                var result = new String("");
-                result.eof = true;
-                return result;
+                return new TextStreamChar('\0', true);
             }
-            return this.text.charAt(this.cursor+n);
+            return  new TextStreamChar(this.text[this.cursor+n], false);
         },
     
-            next : function(n) {
-                if (typeof n == "undefined") n = 1;
-                if (n < 1) return null;
+        public TextStreamChar? next(int n = 1)
+        {
+                
+            if (n < 1) {
+                return null;
+            }
                 
-                var pulled = "";
-                for (var i = 0; i < n; i++) {
-                    if (this.cursor+i < this.text.length) {
-                        pulled += this.text.charAt(this.cursor+i);
-                    }
-                    else {
-                        var result = new String("");
-                        result.eof = true;
-                        return result;
-                    }
+            var pulled = "";
+            for (var i = 0; i < n; i++) {
+                if (this.cursor+i < this.text.length) {
+                    pulled += this.text.charAt(this.cursor+i);
+                } else {
+                    return new TextStreamChar('\0', true);
+                    
                 }
-    
-                this.cursor += n;
-                return pulled;
             }
+            
+            this.cursor += n;
+            return  new TextStreamChar(pulled, false);
+           
+        }
     });
\ No newline at end of file