/* This file contains proprietary software owned by Motorola Mobility, Inc.
No rights, expressed or implied, whatsoever to this software are provided by Motorola Mobility, Inc. hereunder.
(c) Copyright 2011 Motorola Mobility, Inc. All Rights Reserved.
*/ var MaterialParser = function MaterialParser(theStr) { this._strBuffer = theStr; this.nextValue = function (prop, endKeyArg, advanceBufferArg) { if (!this._strBuffer) return; // make the 2 & 3rd argument optional. default is to advance the string var endKey = "\n", advanceBuffer = true; if (endKeyArg) { endKey = endKeyArg; } if (advanceBufferArg) { advanceBuffer = advanceBufferArg; } var iStart = this._strBuffer.indexOf(prop); if (iStart < 0) return; var iEnd = this._strBuffer.indexOf(endKey, iStart); if (iEnd < 0) throw new Error("property " + prop + " improperly terminated: " + this._strBuffer); iStart += prop.length; var nChars = iEnd - iStart; var rtnStr = this._strBuffer.substr(iStart, nChars); if (advanceBuffer) { this._strBuffer = this._strBuffer.substr(iEnd + endKey.length); } return rtnStr; }; this.nextToken = function () { if (!this._strBuffer) return; // find the limits var index = this._strBuffer.search(/\S/); // first non-whitespace character if (index > 0) this._strBuffer = this._strBuffer.slice(index); index = this._strBuffer.search(/\s/); // first whitespace character marking the end of the token var token; if (index > 0) { token = this._strBuffer.slice(0, index); this._strBuffer = this._strBuffer.slice(index); } return token; }; this.advancePastToken = function (token) { var index = this._strBuffer.indexOf(token); if (index < 0) { console.log("could not find token: " + token + " in string: " + this._strBuffer); } else { this._strBuffer = this._strBuffer.substr(index + token.length); } }; }; if (typeof exports === "object") { exports.MaterialParser = MaterialParser; }