func lexNumberOrDuration(l *lexer) stateFn {
	if l.scanNumber() {
		l.emit(ItemNumber)
		return lexStatements
	}
	// Next two chars must be a valid unit and a non-alphanumeric.
	if l.accept("smhdwy") {
		if isAlphaNumeric(l.next()) {
			return l.errorf("bad number or duration syntax: %q", l.input[l.start:l.pos])
		}
		l.backup()
		l.emit(ItemDuration)
		return lexStatements
	}
	return l.errorf("bad number or duration syntax: %q", l.input[l.start:l.pos])
}
func lexNumberOrDuration(l *lexer) stateFn {
	if l.scanNumber() {
		l.emit(ItemNumber)
		return lexStatements
	}
	// Next two chars must be a valid unit and a non-alphanumeric.
	if l.accept("smhdwy") {
		if isAlphaNumeric(l.next()) {
			return l.errorf("bad number or duration syntax: %q", l.input[l.start:l.pos])
		}
		l.backup()
		l.emit(ItemDuration)
		return lexStatements
	}
	return l.errorf("bad number or duration syntax: %q", l.input[l.start:l.pos])
}
func lexNumberOrDuration ( l * lexer ) stateFn { if l . scanNumber ( ) { l . emit ( ItemNumber ) return lexStatements } // Next two chars must be a valid unit and a non-alphanumeric. if l . accept ( " " ) { if isAlphaNumeric ( l . next ( ) ) { return l . errorf ( " " , l . input [ l . start : l . pos ] ) } l . backup ( ) l . emit ( ItemDuration ) return lexStatements } return l . errorf ( " " , l . input [ l . start : l . pos ] ) }
// lexNumberOrDuration scans a number or a duration item.
lexNumberOrDuration scans a number or a duration item .