public Token scanIdentifier ( ) { if ( ' ' == charAt ( offset ) ) { int length = getLengthUntilTerminatedChar ( ' ' ) ; return new Token ( Literals . IDENTIFIER , input . substring ( offset , offset + length ) , offset + length ) ; } if ( ' ' == charAt ( offset ) ) { int length = getLengthUntilTerminatedChar ( ' ' ) ; return new Token ( Literals . IDENTIFIER , input . substring ( offset , offset + length ) , offset + length ) ; } if ( ' ' == charAt ( offset ) ) { int length = getLengthUntilTerminatedChar ( ' ' ) ; return new Token ( Literals . IDENTIFIER , input . substring ( offset , offset + length ) , offset + length ) ; } int length = 0 ; while ( isIdentifierChar ( charAt ( offset + length ) ) ) { length ++ ; } String literals = input . substring ( offset , offset + length ) ; if ( isAmbiguousIdentifier ( literals ) ) { return new Token ( processAmbiguousIdentifier ( offset + length , literals ) , literals , offset + length ) ; } return new Token ( dictionary . findTokenType ( literals , Literals . IDENTIFIER ) , literals , offset + length ) ; }
scan identifier .