blob: 93d43a509a68b6442b17d12d676c34dd5f65aa20 [file] [log] [blame]
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
--- JsColoringLexer.java 2012-09-11 23:38:58.281577587 +0200
+++ JsColoringLexer.java.patched 2012-09-11 23:38:58.353577605 +0200
@@ -982,7 +982,7 @@
* Returns the text matched by the current regular expression.
*/
public final String yytext() {
- return new String( zzBuffer, zzStartRead, zzMarkedPos-zzStartRead );
+ return input.readText().toString();
}
@@ -998,7 +998,7 @@
* @return the character at position pos
*/
public final char yycharat(int pos) {
- return zzBuffer[zzStartRead+pos];
+ return input.readText().charAt(pos);
}
@@ -1006,7 +1006,7 @@
* Returns the length of the matched text region.
*/
public final int yylength() {
- return zzMarkedPos-zzStartRead;
+ return input.readLength();
}
@@ -1049,7 +1049,7 @@
if ( number > yylength() )
zzScanError(ZZ_PUSHBACK_2BIG);
- zzMarkedPos -= number;
+ input.backup(number);
}
@@ -1082,7 +1082,7 @@
zzAction = -1;
- zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;
+ int tokenLength = 0;
zzState = ZZ_LEXSTATE[zzLexicalState];
@@ -1090,30 +1090,15 @@
zzForAction: {
while (true) {
- if (zzCurrentPosL < zzEndReadL)
- zzInput = zzBufferL[zzCurrentPosL++];
- else if (zzAtEOF) {
+ zzInput = input.read();
+
+ if(zzInput == LexerInput.EOF) {
+ //end of input reached
zzInput = YYEOF;
break zzForAction;
+ //notice: currently LexerInput.EOF == YYEOF
}
- else {
- // store back cached positions
- zzCurrentPos = zzCurrentPosL;
- zzMarkedPos = zzMarkedPosL;
- boolean eof = zzRefill();
- // get translated positions and possibly new buffer
- zzCurrentPosL = zzCurrentPos;
- zzMarkedPosL = zzMarkedPos;
- zzBufferL = zzBuffer;
- zzEndReadL = zzEndRead;
- if (eof) {
- zzInput = YYEOF;
- break zzForAction;
- }
- else {
- zzInput = zzBufferL[zzCurrentPosL++];
- }
- }
+
int zzNext = zzTransL[ zzRowMapL[zzState] + zzCMapL[zzInput] ];
if (zzNext == -1) break zzForAction;
zzState = zzNext;
@@ -1121,7 +1106,7 @@
int zzAttributes = zzAttrL[zzState];
if ( (zzAttributes & 1) == 1 ) {
zzAction = zzState;
- zzMarkedPosL = zzCurrentPosL;
+ tokenLength = input.readLength();
if ( (zzAttributes & 8) == 8 ) break zzForAction;
}
@@ -1129,7 +1114,9 @@
}
// store back cached position
- zzMarkedPos = zzMarkedPosL;
+ if(zzInput != YYEOF) {
+ input.backup(input.readLength() - tokenLength);
+ }
switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {
case 40: