sbin/res/app/lib/JSDOC/TokenStream.js
branchjsdoc
changeset 520 fe008e95a716
parent 519 46e21d060650
child 521 df716b99c5bb
child 522 2b1a07f1d797
--- a/sbin/res/app/lib/JSDOC/TokenStream.js	Fri Dec 23 10:59:23 2011 +0100
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-if (typeof JSDOC == "undefined") JSDOC = {};
-
-/**
-	@constructor
-*/
-JSDOC.TokenStream = function(tokens) {
-	this.tokens = (tokens || []);
-	this.rewind();
-}
-
-/**
-	@constructor
-	@private
-*/
-function VoidToken(/**String*/type) {
-	this.toString = function() {return "<VOID type=\""+type+"\">"};
-	this.is = function(){return false;}
-}
-
-JSDOC.TokenStream.prototype.rewind = function() {
-	this.cursor = -1;
-}
-
-/**
-	@type JSDOC.Token
-*/
-JSDOC.TokenStream.prototype.look = function(/**Number*/n, /**Boolean*/considerWhitespace) {
-	if (typeof n == "undefined") n = 0;
-
-	if (considerWhitespace == true) {
-		if (this.cursor+n < 0 || this.cursor+n > this.tokens.length) return {};
-		return this.tokens[this.cursor+n];
-	}
-	else {
-		var count = 0;
-		var i = this.cursor;
-
-		while (true) {
-			if (i < 0) return new JSDOC.Token("", "VOID", "START_OF_STREAM");
-			else if (i > this.tokens.length) return new JSDOC.Token("", "VOID", "END_OF_STREAM");
-
-			if (i != this.cursor && (this.tokens[i] === undefined || this.tokens[i].is("WHIT"))) {
-				if (n < 0) i--; else i++;
-				continue;
-			}
-			
-			if (count == Math.abs(n)) {
-				return this.tokens[i];
-			}
-			count++;
-			(n < 0)? i-- : i++;
-		}
-
-		return new JSDOC.Token("", "VOID", "STREAM_ERROR"); // because null isn't an object and caller always expects an object
-	}
-}
-
-/**
-	@type JSDOC.Token|JSDOC.Token[]
-*/
-JSDOC.TokenStream.prototype.next = function(/**Number*/howMany) {
-	if (typeof howMany == "undefined") howMany = 1;
-	if (howMany < 1) return null;
-	var got = [];
-
-	for (var i = 1; i <= howMany; i++) {
-		if (this.cursor+i >= this.tokens.length) {
-			return null;
-		}
-		got.push(this.tokens[this.cursor+i]);
-	}
-	this.cursor += howMany;
-
-	if (howMany == 1) {
-		return got[0];
-	}
-	else return got;
-}
-
-/**
-	@type JSDOC.Token[]
-*/
-JSDOC.TokenStream.prototype.balance = function(/**String*/start, /**String*/stop) {
-	if (!stop) stop = JSDOC.Lang.matching(start);
-	
-	var depth = 0;
-	var got = [];
-	var started = false;
-	
-	while ((token = this.look())) {
-		if (token.is(start)) {
-			depth++;
-			started = true;
-		}
-		
-		if (started) {
-			got.push(token);
-		}
-		
-		if (token.is(stop)) {
-			depth--;
-			if (depth == 0) return got;
-		}
-		if (!this.next()) break;
-	}
-}
-
-JSDOC.TokenStream.prototype.getMatchingToken = function(/**String*/start, /**String*/stop) {
-	var depth = 0;
-	var cursor = this.cursor;
-	
-	if (!start) {
-		start = JSDOC.Lang.matching(stop);
-		depth = 1;
-	}
-	if (!stop) stop = JSDOC.Lang.matching(start);
-	
-	while ((token = this.tokens[cursor])) {
-		if (token.is(start)) {
-			depth++;
-		}
-		
-		if (token.is(stop) && cursor) {
-			depth--;
-			if (depth == 0) return this.tokens[cursor];
-		}
-		cursor++;
-	}
-}
-
-JSDOC.TokenStream.prototype.insertAhead = function(/**JSDOC.Token*/token) {
-	this.tokens.splice(this.cursor+1, 0, token);
-}
\ No newline at end of file