JSDOC/TextStream.vala
[gnome.introspection-doc-generator] / JSDOC / TextStream.vala
index e69de29..599ed8b 100644 (file)
@@ -0,0 +1,67 @@
+//<script type="text/javscript">
+
+
+/**
+       @constructor
+*/
+namespace JSDOC {
+    
+    public class TextStreamChar : Object {
+        public char c;
+        public bool eof;
+        public TextStreamChar(char val, bool eof=false) {
+            this.c = val;
+            this.eof = eof;
+        }
+    }
+    
+    public class TextStream : Object {
+        
+        string text;
+        int cursor;
+        
+        public TextStream (string text = "")
+        {
+            
+            
+            this.text = text;
+            this.cursor = 0;
+        }
+        
+        public char look(int n = 0, out bool eof)
+        {
+            eof = false;
+                
+            if (this.cursor+n < 0 || this.cursor+n >= this.text.length) {
+                eof = true;
+                return '\0';
+            }
+            return  this.text[this.cursor+n];
+        },
+    
+        public char next(int n = 1,  out bool eof)
+        {
+            eof = false;
+            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 {
+                    eof =true;
+                    return '\0';
+                    
+                    
+                }
+            }
+            
+            this.cursor += n;
+            return pulled;
+           
+        }
+    }
+}
\ No newline at end of file