#define NULL ((void *)0)
typedef unsigned long size_t; // Customize by platform.
typedef long intptr_t;
typedef unsigned long uintptr_t;
typedef long scalar_t__; // Either arithmetic or pointer type.
/* By default, we understand bool (as a convenience). */
typedef int bool;
#define false 0
#define true 1

/* Forward declarations */

/* Type definitions */

/* Variables and functions */
int /*<<< orphan*/ checkResults(char *, char *, char *, int);
void testLineComments() {
  checkResults("//test statement\n",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:BEGIN~/~\n"
               "1:1:STRING=//test statement\n\n"
               "2:0:END~/~\n"
               "2:0:END_MISSING~;~\n"
               "2:0:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               550);
  checkResults("//test statement\\\ny",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:BEGIN~/~\n"
               "1:1:STRING=//test statement\\\n\n"
               "2:0:END~/~\n"
               "2:1:STRING=y\n"
               "2:1:END_MISSING~;~\n"
               "2:1:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               559);
  checkResults("//test statement",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:BEGIN~/~\n"
               "1:1:STRING=//test statement\n"
               "1:16:END_MISSING~/~\n"
               "1:16:END_MISSING~;~\n"
               "1:16:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               569);
  checkResults("a; x//test statement\ny;",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:STRING=a\n"
               "1:2:END~;~\n"
               "1:3:BEGIN~;~\n"
               "1:3:STRING= x\n"
               "1:5:BEGIN~/~\n"
               "1:5:STRING=//test statement\n\n"
               "2:0:END~/~\n"
               "2:1:STRING=y\n"
               "2:2:END~;~\n"
               "2:2:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               578);
  checkResults("a; x//test stat//ement\ny;",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:STRING=a\n"
               "1:2:END~;~\n"
               "1:3:BEGIN~;~\n"
               "1:3:STRING= x\n"
               "1:5:BEGIN~/~\n"
               "1:5:STRING=//test stat//ement\n\n"
               "2:0:END~/~\n"
               "2:1:STRING=y\n"
               "2:2:END~;~\n"
               "2:2:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               592);
  checkResults("a; 2/x//test statement\ny;",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:STRING=a\n"
               "1:2:END~;~\n"
               "1:3:BEGIN~;~\n"
               "1:3:STRING= 2/x\n"
               "1:7:BEGIN~/~\n"
               "1:7:STRING=//test statement\n\n"
               "2:0:END~/~\n"
               "2:1:STRING=y\n"
               "2:2:END~;~\n"
               "2:2:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               606);
  checkResults("a; 2/x/3 //test statement\ny;",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:STRING=a\n"
               "1:2:END~;~\n"
               "1:3:BEGIN~;~\n"
               "1:3:STRING= 2/x/3 \n"
               "1:10:BEGIN~/~\n"
               "1:10:STRING=//test statement\n\n"
               "2:0:END~/~\n"
               "2:1:STRING=y\n"
               "2:2:END~;~\n"
               "2:2:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               620);
  checkResults("\"a; 2/x/3 //test statement\ny;\"",
               "1:0:BEGIN~EOF~\n"
               "1:1:BEGIN~;~\n"
               "1:1:BEGIN~\"~\n"
               "1:1:STRING=\"a; 2/x/3 //test statement\ny;\"\n"
               "2:3:END~\"~\n"
               "2:3:END_MISSING~;~\n"
               "2:3:END~EOF~\n",
               "/scratch/repos/new/home/jordi_armengol_estape/c-scraper/"
               "outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/"
               "heads/master/test/BracketStreamTest.c",
               634);
}


x86 assembly (clang, -O0):
<testLineComments>:
push   %rbp
mov    %rsp,%rbp
lea    0xee5(%rip),%rdi
lea    0xef0(%rip),%rsi
lea    0xf5b(%rip),%rdx
mov    $0x226,%ecx
call   1030 <checkResults@plt>
lea    0xfe4(%rip),%rdi
lea    0xff1(%rip),%rsi
lea    0xf3c(%rip),%rdx
mov    $0x22f,%ecx
call   1030 <checkResults@plt>
lea    0x1059(%rip),%rdi
lea    0x1063(%rip),%rsi
lea    0xf1d(%rip),%rdx
mov    $0x239,%ecx
call   1030 <checkResults@plt>
lea    0x10c7(%rip),%rdi
lea    0x10d8(%rip),%rsi
lea    0xefe(%rip),%rdx
mov    $0x242,%ecx
call   1030 <checkResults@plt>
lea    0x116a(%rip),%rdi
lea    0x117d(%rip),%rsi
lea    0xedf(%rip),%rdx
mov    $0x250,%ecx
call   1030 <checkResults@plt>
lea    0x1211(%rip),%rdi
lea    0x1224(%rip),%rsi
lea    0xec0(%rip),%rdx
mov    $0x25e,%ecx
call   1030 <checkResults@plt>
lea    0x12b8(%rip),%rdi
lea    0x12ce(%rip),%rsi
lea    0xea1(%rip),%rdx
mov    $0x26c,%ecx
call   1030 <checkResults@plt>
lea    0x1367(%rip),%rdi
lea    0x137f(%rip),%rsi
lea    0xe82(%rip),%rdx
mov    $0x27a,%ecx
call   1030 <checkResults@plt>
pop    %rbp
ret

x86 assembly (clang, -O2):
<testLineComments>:
push   %rbx
lea    0xee8(%rip),%rdi
lea    0xef3(%rip),%rsi
lea    0xf5e(%rip),%rbx
mov    %rbx,%rdx
mov    $0x226,%ecx
call   1030 <checkResults@plt>
lea    0xfe4(%rip),%rdi
lea    0xff1(%rip),%rsi
mov    %rbx,%rdx
mov    $0x22f,%ecx
call   1030 <checkResults@plt>
lea    0x105d(%rip),%rdi
lea    0x1067(%rip),%rsi
mov    %rbx,%rdx
mov    $0x239,%ecx
call   1030 <checkResults@plt>
lea    0x10cf(%rip),%rdi
lea    0x10e0(%rip),%rsi
mov    %rbx,%rdx
mov    $0x242,%ecx
call   1030 <checkResults@plt>
lea    0x1176(%rip),%rdi
lea    0x1189(%rip),%rsi
mov    %rbx,%rdx
mov    $0x250,%ecx
call   1030 <checkResults@plt>
lea    0x1221(%rip),%rdi
lea    0x1234(%rip),%rsi
mov    %rbx,%rdx
mov    $0x25e,%ecx
call   1030 <checkResults@plt>
lea    0x12cc(%rip),%rdi
lea    0x12e2(%rip),%rsi
mov    %rbx,%rdx
mov    $0x26c,%ecx
call   1030 <checkResults@plt>
lea    0x137f(%rip),%rdi
lea    0x1397(%rip),%rsi
mov    %rbx,%rdx
mov    $0x27a,%ecx
pop    %rbx
jmp    1030 <checkResults@plt>

LLVM IR (-O0):
@.str = [18 x i8] c"//test statement\0A\00"
@.str.1 = [114 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~/~\0A1:1:STRING=//test statement\0A\0A2:0:END~/~\0A2:0:END_MISSING~;~\0A2:0:END~EOF~\0A\00"
@.str.2 = [154 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/heads/master/test/BracketStreamTest.c\00"
@.str.3 = [20 x i8] c"//test statement\\\0Ay\00"
@.str.4 = [128 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~/~\0A1:1:STRING=//test statement\\\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:1:END_MISSING~;~\0A2:1:END~EOF~\0A\00"
@.str.5 = [17 x i8] c"//test statement\00"
@.str.6 = [124 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~/~\0A1:1:STRING=//test statement\0A1:16:END_MISSING~/~\0A1:16:END_MISSING~;~\0A1:16:END~EOF~\0A\00"
@.str.7 = [24 x i8] c"a; x//test statement\0Ay;\00"
@.str.8 = [170 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= x\0A1:5:BEGIN~/~\0A1:5:STRING=//test statement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.9 = [26 x i8] c"a; x//test stat//ement\0Ay;\00"
@.str.10 = [172 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= x\0A1:5:BEGIN~/~\0A1:5:STRING=//test stat//ement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.11 = [26 x i8] c"a; 2/x//test statement\0Ay;\00"
@.str.12 = [172 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= 2/x\0A1:7:BEGIN~/~\0A1:7:STRING=//test statement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.13 = [29 x i8] c"a; 2/x/3 //test statement\0Ay;\00"
@.str.14 = [177 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= 2/x/3 \0A1:10:BEGIN~/~\0A1:10:STRING=//test statement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.15 = [31 x i8] c"\22a; 2/x/3 //test statement\0Ay;\22\00"
@.str.16 = [127 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~\22~\0A1:1:STRING=\22a; 2/x/3 //test statement\0Ay;\22\0A2:3:END~\22~\0A2:3:END_MISSING~;~\0A2:3:END~EOF~\0A\00"
define void @testLineComments() {
%1 = call i32 @checkResults(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([114 x i8], [114 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 550)
%2 = call i32 @checkResults(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 559)
%3 = call i32 @checkResults(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([124 x i8], [124 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 569)
%4 = call i32 @checkResults(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 578)
%5 = call i32 @checkResults(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([172 x i8], [172 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 592)
%6 = call i32 @checkResults(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([172 x i8], [172 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 606)
%7 = call i32 @checkResults(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 620)
%8 = call i32 @checkResults(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([127 x i8], [127 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 634)
ret void
}

LLVM IR (-O2):
@.str = [18 x i8] c"//test statement\0A\00"
@.str.1 = [114 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~/~\0A1:1:STRING=//test statement\0A\0A2:0:END~/~\0A2:0:END_MISSING~;~\0A2:0:END~EOF~\0A\00"
@.str.2 = [154 x i8] c"/scratch/repos/new/home/jordi_armengol_estape/c-scraper/outputs/2022-01-22/02-19-57/repos/jasonxhill/okavangoc/refs/heads/master/test/BracketStreamTest.c\00"
@.str.3 = [20 x i8] c"//test statement\\\0Ay\00"
@.str.4 = [128 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~/~\0A1:1:STRING=//test statement\\\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:1:END_MISSING~;~\0A2:1:END~EOF~\0A\00"
@.str.5 = [17 x i8] c"//test statement\00"
@.str.6 = [124 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~/~\0A1:1:STRING=//test statement\0A1:16:END_MISSING~/~\0A1:16:END_MISSING~;~\0A1:16:END~EOF~\0A\00"
@.str.7 = [24 x i8] c"a; x//test statement\0Ay;\00"
@.str.8 = [170 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= x\0A1:5:BEGIN~/~\0A1:5:STRING=//test statement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.9 = [26 x i8] c"a; x//test stat//ement\0Ay;\00"
@.str.10 = [172 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= x\0A1:5:BEGIN~/~\0A1:5:STRING=//test stat//ement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.11 = [26 x i8] c"a; 2/x//test statement\0Ay;\00"
@.str.12 = [172 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= 2/x\0A1:7:BEGIN~/~\0A1:7:STRING=//test statement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.13 = [29 x i8] c"a; 2/x/3 //test statement\0Ay;\00"
@.str.14 = [177 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:STRING=a\0A1:2:END~;~\0A1:3:BEGIN~;~\0A1:3:STRING= 2/x/3 \0A1:10:BEGIN~/~\0A1:10:STRING=//test statement\0A\0A2:0:END~/~\0A2:1:STRING=y\0A2:2:END~;~\0A2:2:END~EOF~\0A\00"
@.str.15 = [31 x i8] c"\22a; 2/x/3 //test statement\0Ay;\22\00"
@.str.16 = [127 x i8] c"1:0:BEGIN~EOF~\0A1:1:BEGIN~;~\0A1:1:BEGIN~\22~\0A1:1:STRING=\22a; 2/x/3 //test statement\0Ay;\22\0A2:3:END~\22~\0A2:3:END_MISSING~;~\0A2:3:END~EOF~\0A\00"
define void @testLineComments() {
%1 = tail call i32 @checkResults(i8* getelementptr inbounds ([18 x i8], [18 x i8]* @.str, i64 0, i64 0), i8* getelementptr inbounds ([114 x i8], [114 x i8]* @.str.1, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 550)
%2 = tail call i32 @checkResults(i8* getelementptr inbounds ([20 x i8], [20 x i8]* @.str.3, i64 0, i64 0), i8* getelementptr inbounds ([128 x i8], [128 x i8]* @.str.4, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 559)
%3 = tail call i32 @checkResults(i8* getelementptr inbounds ([17 x i8], [17 x i8]* @.str.5, i64 0, i64 0), i8* getelementptr inbounds ([124 x i8], [124 x i8]* @.str.6, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 569)
%4 = tail call i32 @checkResults(i8* getelementptr inbounds ([24 x i8], [24 x i8]* @.str.7, i64 0, i64 0), i8* getelementptr inbounds ([170 x i8], [170 x i8]* @.str.8, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 578)
%5 = tail call i32 @checkResults(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.9, i64 0, i64 0), i8* getelementptr inbounds ([172 x i8], [172 x i8]* @.str.10, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 592)
%6 = tail call i32 @checkResults(i8* getelementptr inbounds ([26 x i8], [26 x i8]* @.str.11, i64 0, i64 0), i8* getelementptr inbounds ([172 x i8], [172 x i8]* @.str.12, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 606)
%7 = tail call i32 @checkResults(i8* getelementptr inbounds ([29 x i8], [29 x i8]* @.str.13, i64 0, i64 0), i8* getelementptr inbounds ([177 x i8], [177 x i8]* @.str.14, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 620)
%8 = tail call i32 @checkResults(i8* getelementptr inbounds ([31 x i8], [31 x i8]* @.str.15, i64 0, i64 0), i8* getelementptr inbounds ([127 x i8], [127 x i8]* @.str.16, i64 0, i64 0), i8* getelementptr inbounds ([154 x i8], [154 x i8]* @.str.2, i64 0, i64 0), i32 634)
ret void
}