	.file	"extr_gram.c_yylex.c"
	.intel_syntax noprefix
	.text
	.section	.rodata.str1.1,"aMS",@progbits,1
.LC0:
	.string	" \t\f"
.LC1:
	.string	"term"
	.section	.rodata.str1.8,"aMS",@progbits,1
	.align 8
.LC2:
	.string	"missing \" in assembler template\n"
	.section	.rodata.str1.1
.LC3:
	.string	"integer greater than %d\n"
.LC4:
	.string	"invalid character `%c'\n"
.LC5:
	.string	"invalid character `\\%03o'\n"
.LC6:
	.string	"start"
	.text
	.p2align 4
	.globl	yylex
	.type	yylex, @function
yylex:
.LFB0:
	.cfi_startproc
	endbr64
	cmp	QWORD PTR code[rip], 0
	push	r12
	.cfi_def_cfa_offset 16
	.cfi_offset 12, -16
	push	rbp
	.cfi_def_cfa_offset 24
	.cfi_offset 6, -24
	push	rbx
	.cfi_def_cfa_offset 32
	.cfi_offset 3, -32
	lea	rbx, .L9[rip]
	jne	.L49
.L10:
	xor	eax, eax
	call	get@PLT
	cmp	DWORD PTR EOF[rip], eax
	mov	r12d, eax
	je	.L32
	lea	eax, -9[r12]
	cmp	eax, 52
	ja	.L8
	movsx	rax, DWORD PTR [rbx+rax*4]
	add	rax, rbx
	notrack jmp	rax
	.section	.rodata
	.align 4
	.align 4
.L9:
	.long	.L10-.L9
	.long	.L1-.L9
	.long	.L8-.L9
	.long	.L10-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L10-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L1-.L9
	.long	.L1-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L1-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L1-.L9
	.long	.L8-.L9
	.long	.L8-.L9
	.long	.L1-.L9
	.text
.L52:
	mov	rdi, QWORD PTR bp[rip]
	mov	esi, 34
	call	strchr@PLT
	mov	rbx, rax
	test	rax, rax
	je	.L50
.L16:
	mov	rdi, rbx
	call	assert@PLT
	mov	rdi, rbx
	sub	rdi, QWORD PTR bp[rip]
	add	edi, 1
	call	alloc@PLT
	mov	rsi, QWORD PTR bp[rip]
	mov	rdx, rbx
	mov	rdi, rax
	mov	QWORD PTR yylval[rip+8], rax
	sub	rdx, rsi
	call	strncpy@PLT
	mov	rax, QWORD PTR yylval[rip+8]
	mov	rdx, rbx
	sub	rdx, QWORD PTR bp[rip]
	mov	r12d, DWORD PTR TEMPLATE[rip]
	mov	QWORD PTR [rax+rdx*8], 0
	xor	eax, eax
	cmp	BYTE PTR [rbx], 34
	sete	al
	add	QWORD PTR code[rip], 1
	add	rbx, rax
	mov	QWORD PTR bp[rip], rbx
.L1:
	mov	eax, r12d
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	pop	rbp
	.cfi_def_cfa_offset 16
	pop	r12
	.cfi_def_cfa_offset 8
	ret
.L8:
	.cfi_restore_state
	cmp	r12d, 37
	je	.L51
	cmp	r12d, 34
	je	.L52
.L15:
	movsx	ebp, r12b
	mov	edi, ebp
	call	isdigit@PLT
	test	rax, rax
	jne	.L53
	mov	edi, ebp
	call	isalpha@PLT
	test	rax, rax
	jne	.L54
	mov	edi, r12d
	call	isprint@PLT
	test	rax, rax
	je	.L29
	mov	esi, r12d
	lea	rdi, .LC4[rip]
	xor	eax, eax
	call	yyerror@PLT
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L29:
	movzx	esi, r12b
	lea	rdi, .LC5[rip]
	xor	eax, eax
	call	yyerror@PLT
	jmp	.L10
	.p2align 4,,10
	.p2align 3
.L51:
	mov	rdi, QWORD PTR bp[rip]
	cmp	BYTE PTR [rdi], 37
	je	.L55
	mov	edx, 4
	lea	rsi, .LC1[rip]
	call	strncmp@PLT
	test	rax, rax
	je	.L56
.L14:
	mov	rdi, QWORD PTR bp[rip]
	mov	edx, 5
	lea	rsi, .LC6[rip]
	call	strncmp@PLT
	test	rax, rax
	jne	.L15
	mov	rax, QWORD PTR bp[rip]
	movsx	edi, BYTE PTR 5[rax]
	call	isspace@PLT
	test	rax, rax
	je	.L15
	add	QWORD PTR bp[rip], 5
	mov	r12d, DWORD PTR START[rip]
	jmp	.L1
	.p2align 4,,10
	.p2align 3
.L49:
	mov	rdi, QWORD PTR bp[rip]
	lea	rsi, .LC0[rip]
	call	strspn@PLT
	mov	esi, 10
	movsx	rdi, eax
	add	rdi, QWORD PTR bp[rip]
	mov	QWORD PTR bp[rip], rdi
	call	strchr@PLT
	mov	r12, rax
	test	rax, rax
	jne	.L47
	mov	rdi, QWORD PTR bp[rip]
	mov	esi, 10
	call	strchr@PLT
	mov	r12, rax
	jmp	.L47
	.p2align 4,,10
	.p2align 3
.L58:
	movsx	edi, BYTE PTR -1[r12]
	call	isspace@PLT
	test	rax, rax
	je	.L57
	sub	r12, 1
.L47:
	mov	rax, QWORD PTR bp[rip]
	cmp	rax, r12
	jb	.L58
.L5:
	mov	rdi, r12
	sub	rdi, rax
	add	edi, 1
	call	alloc@PLT
	mov	rsi, QWORD PTR bp[rip]
	mov	rdx, r12
	mov	rdi, rax
	mov	QWORD PTR yylval[rip+8], rax
	sub	rdx, rsi
	call	strncpy@PLT
	mov	rax, QWORD PTR yylval[rip+8]
	mov	rdx, r12
	sub	rdx, QWORD PTR bp[rip]
	mov	QWORD PTR [rax+rdx*8], 0
	pop	rbx
	.cfi_remember_state
	.cfi_def_cfa_offset 24
	mov	QWORD PTR bp[rip], r12
	mov	r12d, DWORD PTR CODE[rip]
	pop	rbp
	.cfi_def_cfa_offset 16
	sub	QWORD PTR code[rip], 1
	mov	eax, r12d
	pop	r12
	.cfi_def_cfa_offset 8
	ret
	.p2align 4,,10
	.p2align 3
.L57:
	.cfi_restore_state
	mov	rax, QWORD PTR bp[rip]
	jmp	.L5
	.p2align 4,,10
	.p2align 3
.L56:
	mov	rax, QWORD PTR bp[rip]
	movsx	edi, BYTE PTR 4[rax]
	call	isspace@PLT
	test	rax, rax
	je	.L14
	add	QWORD PTR bp[rip], 4
	mov	r12d, DWORD PTR TERMINAL[rip]
	jmp	.L1
.L55:
	mov	eax, DWORD PTR ppercent[rip]
	add	rdi, 1
	mov	r12d, DWORD PTR PPERCENT[rip]
	mov	QWORD PTR bp[rip], rdi
	lea	edx, 1[rax]
	mov	DWORD PTR ppercent[rip], edx
	test	eax, eax
	je	.L1
	.p2align 4,,10
	.p2align 3
.L32:
	xor	r12d, r12d
	jmp	.L1
.L53:
	xor	ebx, ebx
	lea	rbp, .LC3[rip]
	jmp	.L22
	.p2align 4,,10
	.p2align 3
.L19:
	lea	eax, [rbx+rbx*4]
	lea	ebx, [r12+rax*2]
.L20:
	xor	eax, eax
	call	get@PLT
	cmp	DWORD PTR EOF[rip], eax
	mov	r12d, eax
	je	.L23
	movsx	edi, al
	call	isdigit@PLT
	test	rax, rax
	je	.L23
.L22:
	mov	esi, DWORD PTR INT_MAX[rip]
	sub	r12d, 48
	mov	ecx, esi
	sub	ecx, r12d
	movsx	rdx, ecx
	sar	ecx, 31
	imul	rdx, rdx, 1717986919
	sar	rdx, 34
	sub	edx, ecx
	cmp	edx, ebx
	jge	.L19
	mov	rdi, rbp
	xor	eax, eax
	call	yyerror@PLT
	jmp	.L20
.L23:
	sub	QWORD PTR bp[rip], 1
	mov	r12d, DWORD PTR INT[rip]
	mov	DWORD PTR yylval[rip], ebx
	jmp	.L1
.L54:
	mov	rax, QWORD PTR bp[rip]
	lea	rbx, -1[rax]
	jmp	.L25
	.p2align 4,,10
	.p2align 3
.L60:
	mov	rax, QWORD PTR bp[rip]
	movsx	edi, BYTE PTR [rax]
	call	isdigit@PLT
	test	rax, rax
	jne	.L26
	mov	rax, QWORD PTR bp[rip]
	cmp	BYTE PTR [rax], 95
	jne	.L59
.L28:
	add	rax, 1
	mov	QWORD PTR bp[rip], rax
.L25:
	movsx	edi, BYTE PTR [rax]
	call	isalpha@PLT
	test	rax, rax
	je	.L60
.L26:
	mov	rax, QWORD PTR bp[rip]
	jmp	.L28
.L59:
	sub	rax, rbx
	lea	edi, 1[rax]
	call	alloc@PLT
	mov	rdx, QWORD PTR bp[rip]
	mov	rsi, rbx
	mov	rdi, rax
	mov	QWORD PTR yylval[rip+8], rax
	sub	rdx, rbx
	call	strncpy@PLT
	mov	rax, QWORD PTR bp[rip]
	mov	rdx, QWORD PTR yylval[rip+8]
	mov	r12d, DWORD PTR ID[rip]
	sub	rax, rbx
	mov	QWORD PTR [rdx+rax*8], 0
	jmp	.L1
.L50:
	lea	rdi, .LC2[rip]
	xor	eax, eax
	call	yyerror@PLT
	mov	rdi, QWORD PTR bp[rip]
	mov	esi, 10
	call	strchr@PLT
	mov	rbx, rax
	test	rax, rax
	jne	.L16
	mov	rdi, QWORD PTR bp[rip]
	xor	esi, esi
	call	strchr@PLT
	mov	rbx, rax
	jmp	.L16
	.cfi_endproc
.LFE0:
	.size	yylex, .-yylex
	.comm	yylval,16,16
	.comm	ppercent,4,4
	.comm	code,8,8
	.comm	bp,8,8
	.comm	TERMINAL,4,4
	.comm	TEMPLATE,4,4
	.comm	START,4,4
	.comm	PPERCENT,4,4
	.comm	INT_MAX,4,4
	.comm	INT,4,4
	.comm	ID,4,4
	.comm	EOF,4,4
	.comm	CODE,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",@progbits
	.section	.note.gnu.property,"a"
	.align 8
	.long	 1f - 0f
	.long	 4f - 1f
	.long	 5
0:
	.string	 "GNU"
1:
	.align 8
	.long	 0xc0000002
	.long	 3f - 2f
2:
	.long	 0x3
3:
	.align 8
4:

	.arch armv5t
	.eabi_attribute 20, 1
	.eabi_attribute 21, 1
	.eabi_attribute 23, 3
	.eabi_attribute 24, 1
	.eabi_attribute 25, 1
	.eabi_attribute 26, 2
	.eabi_attribute 30, 2
	.eabi_attribute 34, 0
	.eabi_attribute 18, 4
	.file	"extr_gram.c_yylex.c"
	.text
	.section	.rodata.str1.4,"aMS",%progbits,1
	.align	2
.LC0:
	.ascii	" \011\014\000"
	.align	2
.LC1:
	.ascii	"term\000"
	.align	2
.LC2:
	.ascii	"missing \" in assembler template\012\000"
	.align	2
.LC3:
	.ascii	"integer greater than %d\012\000"
	.align	2
.LC4:
	.ascii	"invalid character `%c'\012\000"
	.align	2
.LC5:
	.ascii	"invalid character `\\%03o'\012\000"
	.align	2
.LC6:
	.ascii	"start\000"
	.text
	.align	2
	.global	yylex
	.syntax unified
	.arm
	.fpu softvfp
	.type	yylex, %function
yylex:
	@ args = 0, pretend = 0, frame = 0
	@ frame_needed = 0, uses_anonymous_args = 0
	push	{r3, r4, r5, r6, r7, r8, r9, r10, fp, lr}
	ldr	r6, .L62
	ldr	r5, [r6]
	cmp	r5, #0
	bne	.L45
	ldr	r4, .L62+4
	ldr	fp, .L62+8
	ldr	r9, .L62+12
	ldr	r8, .L62+16
.L10:
	bl	get
	ldr	r3, [r4]
	mov	r10, r0
	cmp	r3, r0
	beq	.L33
	sub	r3, r10, #9
	cmp	r3, #52
	ldrls	pc, [pc, r3, asl #2]
	b	.L8
.L9:
	.word	.L10
	.word	.L1
	.word	.L8
	.word	.L10
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L10
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L1
	.word	.L1
	.word	.L8
	.word	.L8
	.word	.L1
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L8
	.word	.L1
	.word	.L8
	.word	.L8
	.word	.L1
.L53:
	ldr	r5, .L62+20
	mov	r1, r10
	ldr	r0, [r5]
	bl	strchr
	subs	r4, r0, #0
	beq	.L51
.L17:
	mov	r0, r4
	bl	assert
	ldr	r0, [r5]
	ldr	r7, .L62+24
	sub	r0, r4, r0
	add	r0, r0, #1
	bl	alloc
	ldr	r1, [r5]
	str	r0, [r7, #4]
	sub	r2, r4, r1
	bl	strncpy
	mov	r1, #0
	ldr	r3, [r5]
	ldr	r2, [r7, #4]
	sub	r3, r4, r3
	str	r1, [r2, r3, lsl #2]
	ldrb	r3, [r4]	@ zero_extendqisi2
	ldr	r2, .L62+28
	cmp	r3, #34
	ldr	r3, [r6]
	addeq	r4, r4, #1
	add	r3, r3, #1
	ldr	r10, [r2]
	str	r4, [r5]
	str	r3, [r6]
.L1:
	mov	r0, r10
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L8:
	cmp	r10, #37
	beq	.L52
	cmp	r10, #34
	beq	.L53
.L16:
	and	r7, r10, #255
	mov	r0, r7
	bl	isdigit
	cmp	r0, #0
	bne	.L54
	mov	r0, r7
	bl	isalpha
	cmp	r0, #0
	bne	.L55
	mov	r0, r10
	bl	isprint
	cmp	r0, #0
	movne	r1, r10
	movne	r0, r8
	moveq	r1, r7
	moveq	r0, r9
	bl	yyerror
	b	.L10
.L52:
	ldr	r3, .L62+20
	ldr	r7, [r3]
	ldrb	r3, [r7]	@ zero_extendqisi2
	cmp	r3, #37
	beq	.L56
	mov	r2, #4
	mov	r1, fp
	mov	r0, r7
	bl	strncmp
	cmp	r0, #0
	beq	.L57
.L14:
	mov	r2, #5
	mov	r0, r7
	ldr	r1, .L62+32
	bl	strncmp
	cmp	r0, #0
	bne	.L16
	ldrb	r0, [r7, #5]	@ zero_extendqisi2
	bl	isspace
	cmp	r0, #0
	beq	.L16
	ldr	r1, .L62+20
	ldr	r2, .L62+36
	ldr	r3, [r1]
	ldr	r10, [r2]
	add	r3, r3, #5
	str	r3, [r1]
	b	.L1
.L45:
	ldr	r5, .L62+20
	ldr	r1, .L62+40
	ldr	r4, [r5]
	mov	r0, r4
	bl	strspn
	mov	r1, #10
	add	r0, r4, r0
	str	r0, [r5]
	bl	strchr
	subs	r4, r0, #0
	bne	.L6
	mov	r1, #10
	ldr	r0, [r5]
	bl	strchr
	mov	r4, r0
	b	.L6
.L59:
	mov	r7, r4
	ldrb	r0, [r4, #-1]!	@ zero_extendqisi2
	bl	isspace
	cmp	r0, #0
	beq	.L58
.L6:
	ldr	r0, [r5]
	cmp	r0, r4
	bcc	.L59
.L4:
	sub	r0, r4, r0
	add	r0, r0, #1
	bl	alloc
	ldr	r1, [r5]
	ldr	r7, .L62+24
	sub	r2, r4, r1
	str	r0, [r7, #4]
	bl	strncpy
	mov	r1, #0
	ldr	r3, [r5]
	ldr	r2, [r7, #4]
	sub	r3, r4, r3
	str	r1, [r2, r3, lsl #2]
	ldr	r2, .L62+44
	ldr	r3, [r6]
	ldr	r10, [r2]
	sub	r3, r3, #1
	mov	r0, r10
	str	r4, [r5]
	str	r3, [r6]
	pop	{r3, r4, r5, r6, r7, r8, r9, r10, fp, pc}
.L57:
	ldrb	r0, [r7, #4]	@ zero_extendqisi2
	bl	isspace
	cmp	r0, #0
	bne	.L15
	ldr	r3, .L62+20
	ldr	r7, [r3]
	b	.L14
.L58:
	mov	r4, r7
	ldr	r0, [r5]
	b	.L4
.L33:
	mov	r10, #0
	b	.L1
.L54:
	ldr	r7, .L62+48
	ldr	r6, .L62+52
	ldr	r8, .L62+56
	b	.L23
.L21:
	bl	get
	mov	r10, r0
	ldr	r3, [r4]
	and	r0, r0, #255
	cmp	r3, r10
	beq	.L24
	bl	isdigit
	cmp	r0, #0
	beq	.L24
.L23:
	ldr	r1, [r7]
	sub	r10, r10, #48
	sub	r3, r1, r10
	smull	r0, r2, r6, r3
	asr	r3, r3, #31
	rsb	r3, r3, r2, asr #2
	cmp	r3, r5
	addge	r5, r5, r5, lsl #2
	addge	r5, r10, r5, lsl #1
	bge	.L21
	mov	r0, r8
	bl	yyerror
	b	.L21
.L24:
	ldr	r2, .L62+20
	ldr	r0, .L62+24
	ldr	r3, [r2]
	ldr	r1, .L62+60
	sub	r3, r3, #1
	ldr	r10, [r1]
	str	r3, [r2]
	str	r5, [r0]
	b	.L1
.L55:
	ldr	r5, .L62+20
	ldr	r3, [r5]
	sub	r6, r3, #1
	b	.L26
.L61:
	ldr	r3, [r5]
	ldrb	r0, [r3]	@ zero_extendqisi2
	bl	isdigit
	cmp	r0, #0
	bne	.L27
	ldr	r3, [r5]
	ldrb	r2, [r3]	@ zero_extendqisi2
	cmp	r2, #95
	bne	.L60
.L29:
	add	r3, r3, #1
	str	r3, [r5]
.L26:
	ldrb	r0, [r3]	@ zero_extendqisi2
	bl	isalpha
	cmp	r0, #0
	beq	.L61
.L27:
	ldr	r3, [r5]
	b	.L29
.L60:
	sub	r3, r3, r6
	mov	r4, r0
	add	r0, r3, #1
	bl	alloc
	ldr	r2, [r5]
	ldr	r7, .L62+24
	mov	r1, r6
	sub	r2, r2, r6
	str	r0, [r7, #4]
	bl	strncpy
	ldr	r3, [r5]
	ldr	r1, [r7, #4]
	ldr	r2, .L62+64
	sub	r6, r3, r6
	ldr	r10, [r2]
	str	r4, [r1, r6, lsl #2]
	b	.L1
.L56:
	ldr	r2, .L62+68
	ldr	r1, .L62+20
	ldr	r3, [r2]
	add	r7, r7, #1
	cmp	r3, #0
	add	r3, r3, #1
	str	r7, [r1]
	str	r3, [r2]
	bne	.L33
	ldr	r3, .L62+72
	ldr	r10, [r3]
	b	.L1
.L51:
	ldr	r0, .L62+76
	bl	yyerror
	mov	r1, #10
	ldr	r0, [r5]
	bl	strchr
	subs	r4, r0, #0
	bne	.L17
	mov	r1, r4
	ldr	r0, [r5]
	bl	strchr
	mov	r4, r0
	b	.L17
.L15:
	ldr	r1, .L62+20
	ldr	r2, .L62+80
	ldr	r3, [r1]
	ldr	r10, [r2]
	add	r3, r3, #4
	str	r3, [r1]
	b	.L1
.L63:
	.align	2
.L62:
	.word	code
	.word	EOF
	.word	.LC1
	.word	.LC5
	.word	.LC4
	.word	bp
	.word	yylval
	.word	TEMPLATE
	.word	.LC6
	.word	START
	.word	.LC0
	.word	CODE
	.word	INT_MAX
	.word	1717986919
	.word	.LC3
	.word	INT
	.word	ID
	.word	ppercent
	.word	PPERCENT
	.word	.LC2
	.word	TERMINAL
	.size	yylex, .-yylex
	.comm	yylval,8,4
	.comm	ppercent,4,4
	.comm	code,4,4
	.comm	bp,4,4
	.comm	TERMINAL,4,4
	.comm	TEMPLATE,4,4
	.comm	START,4,4
	.comm	PPERCENT,4,4
	.comm	INT_MAX,4,4
	.comm	INT,4,4
	.comm	ID,4,4
	.comm	EOF,4,4
	.comm	CODE,4,4
	.ident	"GCC: (Ubuntu 9.4.0-1ubuntu1~20.04.2) 9.4.0"
	.section	.note.GNU-stack,"",%progbits
