// File: zhengwangsun[P]pas2c/grammar.cpp
// Function: printfG()
void printfG()
{
	for(int i=0;i<GenerationNum;i++)
	{
		cout<<"第"<<i<<"个:";
		for(int j=0;j<VNnum;j++)	
		{
	  		if(g[i].left==vn[j].value)
	  		{
	  			cout<<vn[j].name;
	  			break;
			}
		}
		cout<<" -> ";
		int k=0;
		while(g[i].right[k]>=0)
		{
	  		if(g[i].right[k]<100)
	  	  	{
				for(int j=0;j<VNnum;j++)
	  			{
	  	  			if(g[i].right[k]==vn[j].value)
	  	  			{
	  	  	  			cout<<vn[j].name<<" ";
	  	  	  			break;
					}
				}
			}
			else
			{
				for(int j=100;j<100+VTnum;j++)
	  			{
	  	  			if(g[i].right[k]==vt[j-100].value)
	  	  			{
	  	  	  			cout<<vt[j-100].name<<" ";
	  	  	  			break;
			  		}
		  		}
			}
	  	k++;	  
		}
		cout<<endl;
		cout<<"FIRST : ";
		int m=0;
		while(g[i].FIRST[m]!=-1)
		{
			for(int ii=0;ii<=40;ii++)
			{
				if(vt[ii].value==g[i].FIRST[m])
					cout<<vt[ii].name<<" ";
			}
			m++;
		}
		cout<<endl;
		cout<<"FOLLOW: ";
		for(int m=0;m<FOLLOWnum;m++)
		{
			if(g[i].FOLLOW[m]==$)
				cout<<"$"<<" ";
			else
			{
				for(int ii=0;ii<=40;ii++)
				{
					if(vt[ii].value==g[i].FOLLOW[m])
						cout<<vt[ii].name<<" ";
				}
			}	
		}
		cout<<endl;
		cout<<endl;
	}
}

// Assembly:
pushq %rbp
movq %rsp, %rbp
subq $0x30, %rsp
movl $0x0, -0x4(%rbp)
cmpl $0x4c, -0x4(%rbp)
jge 0x1be11
movq 0xa5e8(%rip), %rdi      # 0x25fc8
leaq 0x2898(%rip), %rsi      # 0x1e27f
callq 0x3280
movq %rax, %rdi
movl -0x4(%rbp), %esi
callq 0x3440
movq %rax, %rdi
leaq 0x35bc(%rip), %rsi      # 0x1efbd
callq 0x3280
movl $0x0, -0x8(%rbp)
cmpl $0x27, -0x8(%rbp)
jge 0x1ba6f
movslq -0x4(%rbp), %rcx
leaq 0xa4f22(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movl 0x4(%rax), %eax
movslq -0x8(%rbp), %rdx
leaq 0x2449ba(%rip), %rcx    # 0x2603f0
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x20(%rcx), %eax
jne 0x1ba62
movslq -0x8(%rbp), %rax
leaq 0x2449a3(%rip), %rsi    # 0x2603f0
imulq $0x28, %rax, %rax
addq %rax, %rsi
movq 0xa56d(%rip), %rdi      # 0x25fc8
callq 0x3260
jmp 0x1ba6f
jmp 0x1ba64
movl -0x8(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x8(%rbp)
jmp 0x1ba0d
movq 0xa552(%rip), %rdi      # 0x25fc8
leaq 0x3545(%rip), %rsi      # 0x1efc2
callq 0x3280
movl $0x0, -0xc(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0xa4eac(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
cmpl $0x0, 0x8(%rax,%rcx,4)
jl 0x1bbef
movslq -0x4(%rbp), %rcx
leaq 0xa4e88(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
cmpl $0x64, 0x8(%rax,%rcx,4)
jge 0x1bb53
movl $0x0, -0x10(%rbp)
cmpl $0x27, -0x10(%rbp)
jge 0x1bb4e
movslq -0x4(%rbp), %rcx
leaq 0xa4e57(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
movl 0x8(%rax,%rcx,4), %eax
movslq -0x10(%rbp), %rdx
leaq 0x2448ea(%rip), %rcx    # 0x2603f0
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x20(%rcx), %eax
jne 0x1bb41
movslq -0x10(%rbp), %rax
leaq 0x2448d3(%rip), %rsi    # 0x2603f0
imulq $0x28, %rax, %rax
addq %rax, %rsi
movq 0xa49d(%rip), %rdi      # 0x25fc8
callq 0x3260
movq %rax, %rdi
leaq 0x29c1(%rip), %rsi      # 0x1e4fb
callq 0x3280
jmp 0x1bb4e
jmp 0x1bb43
movl -0x10(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x10(%rbp)
jmp 0x1bad8
jmp 0x1bbe1
movl $0x64, -0x14(%rbp)
cmpl $0x8d, -0x14(%rbp)
jge 0x1bbdf
movslq -0x4(%rbp), %rcx
leaq 0xa4dd2(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movslq -0xc(%rbp), %rcx
movl 0x8(%rax,%rcx,4), %eax
movl -0x14(%rbp), %ecx
subl $0x64, %ecx
movslq %ecx, %rdx
leaq 0x244e80(%rip), %rcx    # 0x260a10
imulq $0x28, %rdx, %rdx
addq %rdx, %rcx
cmpl 0x20(%rcx), %eax
jne 0x1bbcf
movl -0x14(%rbp), %eax
subl $0x64, %eax
cltq
leaq 0x244e65(%rip), %rsi    # 0x260a10
imulq $0x28, %rax, %rax
addq %rax, %rsi
movq 0xa40f(%rip), %rdi      # 0x25fc8
callq 0x3260
movq %rax, %rdi
leaq 0x2933(%rip), %rsi      # 0x1e4fb
callq 0x3280
jmp 0x1bbdf
jmp 0x1bbd1
movl -0x14(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x14(%rbp)
jmp 0x1bb5a
jmp 0x1bbe1
movl -0xc(%rbp), %eax
addl $0x1, %eax
movl %eax, -0xc(%rbp)
jmp 0x1ba89
movq 0xa3d2(%rip), %rdi      # 0x25fc8
movq 0xa3b3(%rip), %rsi      # 0x25fb0
callq 0x32b0
movq 0xa3bf(%rip), %rdi      # 0x25fc8
leaq 0x352f(%rip), %rsi      # 0x1f13f
callq 0x3280
movl $0x0, -0x18(%rbp)
movslq -0x4(%rbp), %rcx
leaq 0xa4d19(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movslq -0x18(%rbp), %rcx
cmpl $-0x1, 0x30(%rax,%rcx,4)
je 0x1bcc9
movl $0x0, -0x1c(%rbp)
cmpl $0x28, -0x1c(%rbp)
jg 0x1bcbb
movslq -0x1c(%rbp), %rcx
leaq 0x244db8(%rip), %rax    # 0x260a10
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x20(%rax), %eax
movslq -0x4(%rbp), %rdx
leaq 0xa4cd3(%rip), %rcx     # 0xc0940
imulq $0xd0, %rdx, %rdx
addq %rdx, %rcx
movslq -0x18(%rbp), %rdx
cmpl 0x30(%rcx,%rdx,4), %eax
jne 0x1bcae
movslq -0x1c(%rbp), %rax
leaq 0x244d84(%rip), %rsi    # 0x260a10
imulq $0x28, %rax, %rax
addq %rax, %rsi
movq 0xa32e(%rip), %rdi      # 0x25fc8
callq 0x3260
movq %rax, %rdi
leaq 0x2852(%rip), %rsi      # 0x1e4fb
callq 0x3280
jmp 0x1bcb0
movl -0x1c(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x1c(%rbp)
jmp 0x1bc47
movl -0x18(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x18(%rbp)
jmp 0x1bc1c
movq 0xa2f8(%rip), %rdi      # 0x25fc8
movq 0xa2d9(%rip), %rsi      # 0x25fb0
callq 0x32b0
movq 0xa2e5(%rip), %rdi      # 0x25fc8
leaq 0x3461(%rip), %rsi      # 0x1f14b
callq 0x3280
movl $0x0, -0x20(%rbp)
cmpl $0x14, -0x20(%rbp)
jge 0x1bddd
movslq -0x4(%rbp), %rcx
leaq 0xa4c35(%rip), %rax     # 0xc0940
imulq $0xd0, %rcx, %rcx
addq %rcx, %rax
movslq -0x20(%rbp), %rcx
cmpl $0x8d, 0x80(%rax,%rcx,4)
jne 0x1bd4d
movq 0xa29b(%rip), %rdi      # 0x25fc8
leaq 0x3293(%rip), %rsi      # 0x1efc7
callq 0x3280
movq %rax, %rdi
leaq 0x27b8(%rip), %rsi      # 0x1e4fb
callq 0x3280
jmp 0x1bdcd
movl $0x0, -0x24(%rbp)
cmpl $0x28, -0x24(%rbp)
jg 0x1bdcb
movslq -0x24(%rbp), %rcx
leaq 0x244cab(%rip), %rax    # 0x260a10
imulq $0x28, %rcx, %rcx
addq %rcx, %rax
movl 0x20(%rax), %eax
movslq -0x4(%rbp), %rdx
leaq 0xa4bc6(%rip), %rcx     # 0xc0940
imulq $0xd0, %rdx, %rdx
addq %rdx, %rcx
movslq -0x20(%rbp), %rdx
cmpl 0x80(%rcx,%rdx,4), %eax
jne 0x1bdbe
movslq -0x24(%rbp), %rax
leaq 0x244c74(%rip), %rsi    # 0x260a10
imulq $0x28, %rax, %rax
addq %rax, %rsi
movq 0xa21e(%rip), %rdi      # 0x25fc8
callq 0x3260
movq %rax, %rdi
leaq 0x2742(%rip), %rsi      # 0x1e4fb
callq 0x3280
jmp 0x1bdc0
movl -0x24(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x24(%rbp)
jmp 0x1bd54
jmp 0x1bdcd
jmp 0x1bdcf
movl -0x20(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x20(%rbp)
jmp 0x1bcf6
movq 0xa1e4(%rip), %rdi      # 0x25fc8
movq 0xa1c5(%rip), %rsi      # 0x25fb0
callq 0x32b0
movq 0xa1d1(%rip), %rdi      # 0x25fc8
movq 0xa1b2(%rip), %rsi      # 0x25fb0
callq 0x32b0
movl -0x4(%rbp), %eax
addl $0x1, %eax
movl %eax, -0x4(%rbp)
jmp 0x1b9cf
addq $0x30, %rsp
popq %rbp
retq
nopw (%rax,%rax)