Add experimental -insert-semicolon functionality to tokenizer and parser

This commit is contained in:
gingerBill
2020-11-01 15:10:06 +00:00
parent 75e8e5e06f
commit 54fbdabc38
11 changed files with 2253 additions and 42 deletions
+1 -1
View File
@@ -10,7 +10,7 @@ Float_Class :: enum {
Neg_Zero, // the negative zero
NaN, // Not-A-Number (NaN)
Inf, // positive infinity
Neg_Inf // negative infinity
Neg_Inf, // negative infinity
};
TAU :: 6.28318530717958647692528676655900576;
+1 -1
View File
@@ -935,7 +935,7 @@ Small_Allocator :: struct(BUFFER_SIZE: int)
start: uintptr,
curr: uintptr,
end: uintptr,
chunk_size: int
chunk_size: int,
}
small_allocator :: proc(s: ^$S/Small_Allocator, backing := context.allocator) -> (a: Allocator) {
+4 -4
View File
@@ -114,10 +114,10 @@ cleanpath_strip_prefix :: proc(buf: []u16) -> []u16 {
buf = buf[:N];
if len(buf) >= 4 {
if buf[0] == '\\'
&& buf[1] == '\\'
&& buf[2] == '?'
&& buf[3] == '\\' {
if buf[0] == '\\' &&
buf[1] == '\\' &&
buf[2] == '?' &&
buf[3] == '\\' {
buf = buf[4:];
}
}
+2 -2
View File
@@ -64,7 +64,7 @@ Type_Info_Boolean :: struct {};
Type_Info_Any :: struct {};
Type_Info_Type_Id :: struct {};
Type_Info_Pointer :: struct {
elem: ^Type_Info // nil -> rawptr
elem: ^Type_Info, // nil -> rawptr
};
Type_Info_Procedure :: struct {
params: ^Type_Info, // Type_Info_Tuple
@@ -296,7 +296,7 @@ Logger_Option :: enum {
Line,
Procedure,
Terminal_Color,
Thread_Id
Thread_Id,
}
Logger_Options :: bit_set[Logger_Option];
+1 -2
View File
@@ -183,8 +183,7 @@ foreign kernel32 {
lpOverlapped: LPOVERLAPPED,
) -> BOOL ---
CloseHandle :: proc(hObject: HANDLE) -> BOOL ---
MoveFileExW :: proc(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD)
-> BOOL ---
MoveFileExW :: proc(lpExistingFileName: LPCWSTR, lpNewFileName: LPCWSTR, dwFlags: DWORD) -> BOOL ---
SetFilePointerEx :: proc(
hFile: HANDLE,
liDistanceToMove: LARGE_INTEGER,
+8 -8
View File
@@ -118,12 +118,12 @@ SYNCHRONIZE: DWORD : 0x00100000;
GENERIC_READ: DWORD : 0x80000000;
GENERIC_WRITE: DWORD : 0x40000000;
STANDARD_RIGHTS_WRITE: DWORD : READ_CONTROL;
FILE_GENERIC_WRITE: DWORD : STANDARD_RIGHTS_WRITE
| FILE_WRITE_DATA
| FILE_WRITE_ATTRIBUTES
| FILE_WRITE_EA
| FILE_APPEND_DATA
| SYNCHRONIZE;
FILE_GENERIC_WRITE: DWORD : STANDARD_RIGHTS_WRITE |
FILE_WRITE_DATA |
FILE_WRITE_ATTRIBUTES |
FILE_WRITE_EA |
FILE_APPEND_DATA |
SYNCHRONIZE;
FILE_FLAG_OPEN_REPARSE_POINT: DWORD : 0x00200000;
FILE_FLAG_BACKUP_SEMANTICS: DWORD : 0x02000000;
@@ -722,7 +722,7 @@ SYSTEM_INFO :: struct {
// https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/ns-wdm-_osversioninfoexw
OSVERSIONINFOEXW :: struct {
dwOSVersionInfoSize: ULONG,
dwOSVersionInfoSize: ULONG,
dwMajorVersion: ULONG,
dwMinorVersion: ULONG,
dwBuildNumber: ULONG,
@@ -733,4 +733,4 @@ OSVERSIONINFOEXW :: struct {
wSuiteMask: USHORT,
wProductType: UCHAR,
wReserved: UCHAR,
};
};