sbin/res/app/lib/JSDOC/TextStream.js
author hamidouk
Fri, 23 Dec 2011 10:59:23 +0100
branchjsdoc
changeset 519 46e21d060650
permissions -rw-r--r--
added jsdoc base files.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
519
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     1
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     2
/**
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     3
	@constructor
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     4
*/
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     5
JSDOC.TextStream = function(text) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     6
	if (typeof(text) == "undefined") text = "";
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     7
	text = ""+text;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     8
	this.text = text;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
     9
	this.cursor = 0;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    10
}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    11
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    12
JSDOC.TextStream.prototype.look = function(n) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    13
	if (typeof n == "undefined") n = 0;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    14
	
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    15
	if (this.cursor+n < 0 || this.cursor+n >= this.text.length) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    16
		var result = new String("");
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    17
		result.eof = true;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    18
		return result;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    19
	}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    20
	return this.text.charAt(this.cursor+n);
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    21
}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    22
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    23
JSDOC.TextStream.prototype.next = function(n) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    24
	if (typeof n == "undefined") n = 1;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    25
	if (n < 1) return null;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    26
	
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    27
	var pulled = "";
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    28
	for (var i = 0; i < n; i++) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    29
		if (this.cursor+i < this.text.length) {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    30
			pulled += this.text.charAt(this.cursor+i);
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    31
		}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    32
		else {
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    33
			var result = new String("");
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    34
			result.eof = true;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    35
			return result;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    36
		}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    37
	}
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    38
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    39
	this.cursor += n;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    40
	return pulled;
46e21d060650 added jsdoc base files.
hamidouk
parents:
diff changeset
    41
}