在2.1.1小节中,我们也提到过,Doom3文本文件格式中的标识符是由带一对单引号或双引号的字符串组成的,因此我们也需要一个方法来解析这种情况,让我们来看一下是如何实现的,具体代码如下所示:

  1. private _getSubstring ( token : Doom3Token, endChar: string ) : void {
  2. let end : boolean = false ;
  3. let c : string = "" ;
  4. token . setType ( ETokenType.STRING ) ;
  5. do {
  6. // 获取字符
  7. c = this . _getChar ( ) ;
  8. //如果当前字符是结束符(要么是\",要么是\')
  9. if ( c === endChar ) {
  10. end = true ; // 结束符
  11. }
  12. else {
  13. token . addChar( c ) ;
  14. }
  15. //结束条件: 数据源解析全部完成或遇到换行符(子串不能多行表示)或是结束符号(要么是\",要么是\')
  16. } while ( c . length > 0 && c !== '\n' && ! end ) ;
  17. }