// File: /workspace/github_c_makefile_star2_O0/ccxvii[P]mujs/./jslex.c
// Function: jsY_lexx
static int jsY_lexx(js_State *J)
{
	J->newline = 0;

	while (1) {
		J->lexline = J->line; /* save location of beginning of token */

		while (jsY_iswhite(J->lexchar))
			jsY_next(J);

		if (jsY_accept(J, '\n')) {
			J->newline = 1;
			if (isnlthcontext(J->lasttoken))
				return ';';
			continue;
		}

		if (jsY_accept(J, '/')) {
			if (jsY_accept(J, '/')) {
				lexlinecomment(J);
				continue;
			} else if (jsY_accept(J, '*')) {
				if (lexcomment(J))
					jsY_error(J, "multi-line comment not terminated");
				continue;
			} else if (isregexpcontext(J->lasttoken)) {
				return lexregexp(J);
			} else if (jsY_accept(J, '=')) {
				return TK_DIV_ASS;
			} else {
				return '/';
			}
		}

		if (J->lexchar >= '0' && J->lexchar <= '9') {
			return lexnumber(J);
		}

		switch (J->lexchar) {
		case '(': jsY_next(J); return '(';
		case ')': jsY_next(J); return ')';
		case ',': jsY_next(J); return ',';
		case ':': jsY_next(J); return ':';
		case ';': jsY_next(J); return ';';
		case '?': jsY_next(J); return '?';
		case '[': jsY_next(J); return '[';
		case ']': jsY_next(J); return ']';
		case '{': jsY_next(J); return '{';
		case '}': jsY_next(J); return '}';
		case '~': jsY_next(J); return '~';

		case '\'':
		case '"':
			return lexstring(J);

		case '.':
			return lexnumber(J);

		case '<':
			jsY_next(J);
			if (jsY_accept(J, '<')) {
				if (jsY_accept(J, '='))
					return TK_SHL_ASS;
				return TK_SHL;
			}
			if (jsY_accept(J, '='))
				return TK_LE;
			return '<';

		case '>':
			jsY_next(J);
			if (jsY_accept(J, '>')) {
				if (jsY_accept(J, '>')) {
					if (jsY_accept(J, '='))
						return TK_USHR_ASS;
					return TK_USHR;
				}
				if (jsY_accept(J, '='))
					return TK_SHR_ASS;
				return TK_SHR;
			}
			if (jsY_accept(J, '='))
				return TK_GE;
			return '>';

		case '=':
			jsY_next(J);
			if (jsY_accept(J, '=')) {
				if (jsY_accept(J, '='))
					return TK_STRICTEQ;
				return TK_EQ;
			}
			return '=';

		case '!':
			jsY_next(J);
			if (jsY_accept(J, '=')) {
				if (jsY_accept(J, '='))
					return TK_STRICTNE;
				return TK_NE;
			}
			return '!';

		case '+':
			jsY_next(J);
			if (jsY_accept(J, '+'))
				return TK_INC;
			if (jsY_accept(J, '='))
				return TK_ADD_ASS;
			return '+';

		case '-':
			jsY_next(J);
			if (jsY_accept(J, '-'))
				return TK_DEC;
			if (jsY_accept(J, '='))
				return TK_SUB_ASS;
			return '-';

		case '*':
			jsY_next(J);
			if (jsY_accept(J, '='))
				return TK_MUL_ASS;
			return '*';

		case '%':
			jsY_next(J);
			if (jsY_accept(J, '='))
				return TK_MOD_ASS;
			return '%';

		case '&':
			jsY_next(J);
			if (jsY_accept(J, '&'))
				return TK_AND;
			if (jsY_accept(J, '='))
				return TK_AND_ASS;
			return '&';

		case '|':
			jsY_next(J);
			if (jsY_accept(J, '|'))
				return TK_OR;
			if (jsY_accept(J, '='))
				return TK_OR_ASS;
			return '|';

		case '^':
			jsY_next(J);
			if (jsY_accept(J, '='))
				return TK_XOR_ASS;
			return '^';

		case EOF:
			return 0; /* EOF */
		}

		/* Handle \uXXXX escapes in identifiers */
		jsY_unescape(J);
		if (jsY_isidentifierstart(J->lexchar)) {
			textinit(J);
			textpush(J, J->lexchar);

			jsY_next(J);
			jsY_unescape(J);
			while (jsY_isidentifierpart(J->lexchar)) {
				textpush(J, J->lexchar);
				jsY_next(J);
				jsY_unescape(J);
			}

			textend(J);

			return jsY_findkeyword(J, J->lexbuf.text);
		}

		if (J->lexchar >= 0x20 && J->lexchar <= 0x7E)
			jsY_error(J, "unexpected character: '%c'", J->lexchar);
		jsY_error(J, "unexpected character: \\u%04X", J->lexchar);
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x20, %rsp
movq %rdi, -0x10(%rbp)
movq -0x10(%rbp), %rax
movl $0x0, 0x6c(%rax)
movq -0x10(%rbp), %rax
movl 0x48(%rax), %ecx
movq -0x10(%rbp), %rax
movl %ecx, 0x60(%rax)
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0xded0
cmpl $0x0, %eax
je 0xe1c1
movq -0x10(%rbp), %rdi
callq 0xe0a0
jmp 0xe1a5
movq -0x10(%rbp), %rax
cmpl $0xa, 0x64(%rax)
jne 0xe1dc
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe1e4
jmp 0xe20e
xorl %eax, %eax
testb $0x1, %al
jne 0xe1e4
jmp 0xe20e
movq -0x10(%rbp), %rax
movl $0x1, 0x6c(%rax)
movq -0x10(%rbp), %rax
movl 0x68(%rax), %edi
callq 0x24a80
cmpl $0x0, %eax
je 0xe20c
movl $0x3b, -0x4(%rbp)
jmp 0xea78
jmp 0xe197
movq -0x10(%rbp), %rax
cmpl $0x2f, 0x64(%rax)
jne 0xe22c
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe237
jmp 0xe30d
xorl %eax, %eax
testb $0x1, %al
jne 0xe237
jmp 0xe30d
movq -0x10(%rbp), %rax
cmpl $0x2f, 0x64(%rax)
jne 0xe252
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe25a
jmp 0xe268
xorl %eax, %eax
testb $0x1, %al
jne 0xe25a
jmp 0xe268
movq -0x10(%rbp), %rdi
callq 0x24ad0
jmp 0xe197
movq -0x10(%rbp), %rax
cmpl $0x2a, 0x64(%rax)
jne 0xe283
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe28b
jmp 0xe2b0
xorl %eax, %eax
testb $0x1, %al
jne 0xe28b
jmp 0xe2b0
movq -0x10(%rbp), %rdi
callq 0x24b20
cmpl $0x0, %eax
je 0xe2ab
movq -0x10(%rbp), %rdi
leaq 0x2eb79(%rip), %rsi     # 0x3ce1d
movb $0x0, %al
callq 0xf250
jmp 0xe197
movq -0x10(%rbp), %rax
movl 0x68(%rax), %edi
callq 0x24bc0
cmpl $0x0, %eax
je 0xe2d2
movq -0x10(%rbp), %rdi
callq 0x24c40
movl %eax, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe2ed
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe2f5
jmp 0xe301
xorl %eax, %eax
testb $0x1, %al
jne 0xe2f5
jmp 0xe301
movl $0x112, -0x4(%rbp)      # imm = 0x112
jmp 0xea78
movl $0x2f, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x30, 0x64(%rax)
jl 0xe332
movq -0x10(%rbp), %rax
cmpl $0x39, 0x64(%rax)
jg 0xe332
movq -0x10(%rbp), %rdi
callq 0x24f80
movl %eax, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rax
movl 0x64(%rax), %eax
incl %eax
movl %eax, %ecx
movq %rcx, -0x18(%rbp)
subl $0x7f, %eax
ja 0xe999
movq -0x18(%rbp), %rax
leaq 0x2522b(%rip), %rcx     # 0x33580
movslq (%rcx,%rax,4), %rax
addq %rcx, %rax
jmpq *%rax
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x28, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x29, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x2c, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x3a, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x3b, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x3f, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x5b, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x5d, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x7b, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x7d, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movl $0x7e, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0x25250
movl %eax, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0x24f80
movl %eax, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3c, 0x64(%rax)
jne 0xe48b
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe493
jmp 0xe4ce
xorl %eax, %eax
testb $0x1, %al
jne 0xe493
jmp 0xe4ce
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe4ae
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe4b6
jmp 0xe4c2
xorl %eax, %eax
testb $0x1, %al
jne 0xe4b6
jmp 0xe4c2
movl $0x114, -0x4(%rbp)      # imm = 0x114
jmp 0xea78
movl $0x10a, -0x4(%rbp)      # imm = 0x10A
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe4e9
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe4f1
jmp 0xe4fd
xorl %eax, %eax
testb $0x1, %al
jne 0xe4f1
jmp 0xe4fd
movl $0x104, -0x4(%rbp)      # imm = 0x104
jmp 0xea78
movl $0x3c, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3e, 0x64(%rax)
jne 0xe530
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe53b
jmp 0xe5d4
xorl %eax, %eax
testb $0x1, %al
jne 0xe53b
jmp 0xe5d4
movq -0x10(%rbp), %rax
cmpl $0x3e, 0x64(%rax)
jne 0xe556
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe55e
jmp 0xe599
xorl %eax, %eax
testb $0x1, %al
jne 0xe55e
jmp 0xe599
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe579
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe581
jmp 0xe58d
xorl %eax, %eax
testb $0x1, %al
jne 0xe581
jmp 0xe58d
movl $0x116, -0x4(%rbp)      # imm = 0x116
jmp 0xea78
movl $0x10c, -0x4(%rbp)      # imm = 0x10C
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe5b4
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe5bc
jmp 0xe5c8
xorl %eax, %eax
testb $0x1, %al
jne 0xe5bc
jmp 0xe5c8
movl $0x115, -0x4(%rbp)      # imm = 0x115
jmp 0xea78
movl $0x10b, -0x4(%rbp)      # imm = 0x10B
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe5ef
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe5f7
jmp 0xe603
xorl %eax, %eax
testb $0x1, %al
jne 0xe5f7
jmp 0xe603
movl $0x105, -0x4(%rbp)      # imm = 0x105
jmp 0xea78
movl $0x3e, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe633
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe63b
jmp 0xe676
xorl %eax, %eax
testb $0x1, %al
jne 0xe63b
jmp 0xe676
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe656
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe65e
jmp 0xe66a
xorl %eax, %eax
testb $0x1, %al
jne 0xe65e
jmp 0xe66a
movl $0x108, -0x4(%rbp)      # imm = 0x108
jmp 0xea78
movl $0x106, -0x4(%rbp)      # imm = 0x106
jmp 0xea78
movl $0x3d, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe6a6
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe6ae
jmp 0xe6e9
xorl %eax, %eax
testb $0x1, %al
jne 0xe6ae
jmp 0xe6e9
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe6c9
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe6d1
jmp 0xe6dd
xorl %eax, %eax
testb $0x1, %al
jne 0xe6d1
jmp 0xe6dd
movl $0x109, -0x4(%rbp)      # imm = 0x109
jmp 0xea78
movl $0x107, -0x4(%rbp)      # imm = 0x107
jmp 0xea78
movl $0x21, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x2b, 0x64(%rax)
jne 0xe719
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe721
jmp 0xe72d
xorl %eax, %eax
testb $0x1, %al
jne 0xe721
jmp 0xe72d
movl $0x11a, -0x4(%rbp)      # imm = 0x11A
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe748
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe750
jmp 0xe75c
xorl %eax, %eax
testb $0x1, %al
jne 0xe750
jmp 0xe75c
movl $0x10f, -0x4(%rbp)      # imm = 0x10F
jmp 0xea78
movl $0x2b, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x2d, 0x64(%rax)
jne 0xe78c
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe794
jmp 0xe7a0
xorl %eax, %eax
testb $0x1, %al
jne 0xe794
jmp 0xe7a0
movl $0x11b, -0x4(%rbp)      # imm = 0x11B
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe7bb
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe7c3
jmp 0xe7cf
xorl %eax, %eax
testb $0x1, %al
jne 0xe7c3
jmp 0xe7cf
movl $0x110, -0x4(%rbp)      # imm = 0x110
jmp 0xea78
movl $0x2d, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe7ff
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe807
jmp 0xe813
xorl %eax, %eax
testb $0x1, %al
jne 0xe807
jmp 0xe813
movl $0x111, -0x4(%rbp)      # imm = 0x111
jmp 0xea78
movl $0x2a, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe843
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe84b
jmp 0xe857
xorl %eax, %eax
testb $0x1, %al
jne 0xe84b
jmp 0xe857
movl $0x113, -0x4(%rbp)      # imm = 0x113
jmp 0xea78
movl $0x25, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x26, 0x64(%rax)
jne 0xe887
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe88f
jmp 0xe89b
xorl %eax, %eax
testb $0x1, %al
jne 0xe88f
jmp 0xe89b
movl $0x10d, -0x4(%rbp)      # imm = 0x10D
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe8b6
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe8be
jmp 0xe8ca
xorl %eax, %eax
testb $0x1, %al
jne 0xe8be
jmp 0xe8ca
movl $0x117, -0x4(%rbp)      # imm = 0x117
jmp 0xea78
movl $0x26, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x7c, 0x64(%rax)
jne 0xe8fa
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe902
jmp 0xe90e
xorl %eax, %eax
testb $0x1, %al
jne 0xe902
jmp 0xe90e
movl $0x10e, -0x4(%rbp)      # imm = 0x10E
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe929
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe931
jmp 0xe93d
xorl %eax, %eax
testb $0x1, %al
jne 0xe931
jmp 0xe93d
movl $0x118, -0x4(%rbp)      # imm = 0x118
jmp 0xea78
movl $0x7c, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rax
cmpl $0x3d, 0x64(%rax)
jne 0xe96d
movq -0x10(%rbp), %rdi
callq 0xe0a0
movb $0x1, %al
testb $0x1, %al
jne 0xe975
jmp 0xe981
xorl %eax, %eax
testb $0x1, %al
jne 0xe975
jmp 0xe981
movl $0x119, -0x4(%rbp)      # imm = 0x119
jmp 0xea78
movl $0x5e, -0x4(%rbp)
jmp 0xea78
movl $0x0, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rdi
callq 0x25380
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x254d0
cmpl $0x0, %eax
je 0xea32
movq -0x10(%rbp), %rdi
callq 0x25540
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %esi
callq 0x25590
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rdi
callq 0x25380
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edi
callq 0x25660
cmpl $0x0, %eax
je 0xea13
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %esi
callq 0x25590
movq -0x10(%rbp), %rdi
callq 0xe0a0
movq -0x10(%rbp), %rdi
callq 0x25380
jmp 0xe9de
movq -0x10(%rbp), %rdi
callq 0x256e0
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movq 0x50(%rax), %rsi
callq 0x25710
movl %eax, -0x4(%rbp)
jmp 0xea78
movq -0x10(%rbp), %rax
cmpl $0x20, 0x64(%rax)
jl 0xea5f
movq -0x10(%rbp), %rax
cmpl $0x7e, 0x64(%rax)
jg 0xea5f
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edx
leaq 0x2cedd(%rip), %rsi     # 0x3b935
movb $0x0, %al
callq 0xf250
movq -0x10(%rbp), %rdi
movq -0x10(%rbp), %rax
movl 0x64(%rax), %edx
leaq 0x2cedf(%rip), %rsi     # 0x3b950
movb $0x0, %al
callq 0xf250
movl -0x4(%rbp), %eax
addq $0x20, %rsp
popq %rbp
retq
nopw %cs:(%rax,%rax)