Fixed some diagnostics warnings
Moved examples to tofix because fixing them is besides the point right now.
This commit is contained in:
parent
52164c82e3
commit
858fe11666
166 changed files with 68 additions and 264 deletions
128
06/Lexer.lua
128
06/Lexer.lua
|
@ -1,128 +0,0 @@
|
||||||
Reverse = {
|
|
||||||
"addrspace", "align", "allowzero", "and", "anyframe", "anytype", "asm", "async",
|
|
||||||
"await", "break", "callconv", "catch", "comptime", "const", "continue", "defer",
|
|
||||||
"else", "enum", "errdefer", "error", "export", "extern", "fn", "for", "if",
|
|
||||||
"inline", "noalias", "noinline", "IDENTIFIER", "nosuspend", "opaque", "or",
|
|
||||||
"orelse", "packed", "pub", "resume", "return", "linksection", "struct", "suspend",
|
|
||||||
"switch", "test", "threadlocal", "try", "union", "unreachable", "usingnamespace",
|
|
||||||
"var", "volatile", "while", "INVALID", ".**", "!", "|", "||", "|=", "=", "==",
|
|
||||||
"=>", "!=", "(", ")", ";", "%", "%=", "{", "}", "[", "]", ".", ".*", "..", "...",
|
|
||||||
"^", "^=", "+", "++", "+=", "+%", "+%=", "+|", "+|=", "-", "-=", "-%", "-%=", "-|",
|
|
||||||
"-|=", "*", "*=", "**", "*%", "*%=", "*|", "*|=", "->", ":", "/", "/=", ",", "&",
|
|
||||||
"&=", "?", "<", "<=", "<<", "<<=", "<<|", "<<|=", ">", ">=", ">>", ">>=", "~",
|
|
||||||
"STRING_LITERAL", "CHAR_LITERAL", "EOF", "BUILTIN", "NUMBER_LITERAL", "DOC_COMMENT",
|
|
||||||
"CONTAINER_DOC_COMMENT",
|
|
||||||
}
|
|
||||||
|
|
||||||
Tokens = {
|
|
||||||
ADDRSPACE = 1, ALIGN = 2,
|
|
||||||
ALLOWZERO = 3, AND = 4,
|
|
||||||
ANYFRAME = 5, ANYTYPE = 6,
|
|
||||||
ASM = 7, ASYNC = 8,
|
|
||||||
AWAIT = 9, BREAK = 10,
|
|
||||||
CALLCONV = 11, CATCH = 12,
|
|
||||||
COMPTIME = 13, CONST = 14,
|
|
||||||
CONTINUE = 15, DEFER = 16,
|
|
||||||
ELSE = 17, ENUM = 18,
|
|
||||||
ERRDEFER = 19, ERROR = 20,
|
|
||||||
EXPORT = 21, EXTERN = 22,
|
|
||||||
FN = 23, FOR = 24,
|
|
||||||
IF = 25, INLINE = 26,
|
|
||||||
NOALIAS = 27, NOINLINE = 28,
|
|
||||||
IDENTIFIER = 29, NOSUSPEND = 30,
|
|
||||||
OPAQUE = 31, OR = 32,
|
|
||||||
ORELSE = 33, PACKED = 34,
|
|
||||||
PUB = 35, RESUME = 36,
|
|
||||||
RETURN = 37, LINKSECTION = 38,
|
|
||||||
STRUCT = 39, SUSPEND = 40,
|
|
||||||
SWITCH = 41, TEST = 42,
|
|
||||||
THREADLOCAL = 43, TRY = 44,
|
|
||||||
UNION = 45, UNREACHABLE = 46,
|
|
||||||
USINGNAMESPACE = 47, VAR = 48,
|
|
||||||
VOLATILE = 49, WHILE = 50,
|
|
||||||
INVALID = 51, INVALID_PERIODASTERISKS = 52,
|
|
||||||
BANG = 53, PIPE = 54,
|
|
||||||
PIPE_PIPE = 55, PIPE_EQUAL = 56,
|
|
||||||
EQUAL = 57, EQUAL_EQUAL = 58,
|
|
||||||
EQUAL_ANGLE_BRACKET_RIGHT = 59, BANG_EQUAL = 60,
|
|
||||||
L_PAREN = 61, R_PAREN = 62,
|
|
||||||
SEMICOLON = 63, PERCENT = 64,
|
|
||||||
PERCENT_EQUAL = 65, L_BRACE = 66,
|
|
||||||
R_BRACE = 67, L_BRACKET = 68,
|
|
||||||
R_BRACKET = 69, PERIOD = 70,
|
|
||||||
PERIOD_ASTERISK = 71, ELLIPSIS2 = 72,
|
|
||||||
ELLIPSIS3 = 73, CARET = 74,
|
|
||||||
CARET_EQUAL = 75, PLUS = 76,
|
|
||||||
PLUS_PLUS = 77, PLUS_EQUAL = 78,
|
|
||||||
PLUS_PERCENT = 79, PLUS_PERCENT_EQUAL = 80,
|
|
||||||
PLUS_PIPE = 81, PLUS_PIPE_EQUAL = 82,
|
|
||||||
MINUS = 83, MINUS_EQUAL = 84,
|
|
||||||
MINUS_PERCENT = 85, MINUS_PERCENT_EQUAL = 86,
|
|
||||||
MINUS_PIPE = 87, MINUS_PIPE_EQUAL = 88,
|
|
||||||
ASTERISK = 89, ASTERISK_EQUAL = 90,
|
|
||||||
ASTERISK_ASTERISK = 91, ASTERISK_PERCENT = 92,
|
|
||||||
ASTERISK_PERCENT_EQUAL = 93, ASTERISK_PIPE = 94,
|
|
||||||
ASTERISK_PIPE_EQUAL = 95, ARROW = 96,
|
|
||||||
COLON = 97, SLASH = 98,
|
|
||||||
SLASH_EQUAL = 99, COMMA = 100,
|
|
||||||
AMPERSAND = 101, AMPERSAND_EQUAL = 102,
|
|
||||||
QUESTION_MARK = 103, ANGLE_BRACKET_LEFT = 104,
|
|
||||||
ANGLE_BRACKET_LEFT_EQUAL = 105, ANGLE_BRACKET_ANGLE_BRACKET_LEFT = 106,
|
|
||||||
ANGLE_BRACKET_ANGLE_BRACKET_LEFT_EQUAL = 107, ANGLE_BRACKET_ANGLE_BRACKET_LEFT_PIPE = 108,
|
|
||||||
ANGLE_BRACKET_ANGLE_BRACKET_LEFT_PIPE_EQUAL = 109, ANGLE_BRACKET_RIGHT = 110,
|
|
||||||
ANGLE_BRACKET_RIGHT_EQUAL = 111, ANGLE_BRACKET_ANGLE_BRACKET_RIGHT = 112,
|
|
||||||
ANGLE_BRACKET_ANGLE_BRACKET_RIGHT_EQUAL = 113, TILDE = 114,
|
|
||||||
STRING_LITERAL = 115, CHAR_LITERAL = 116,
|
|
||||||
EOF = 117, BUILTIN = 118,
|
|
||||||
NUMBER_LITERAL = 119, DOC_COMMENT = 120,
|
|
||||||
CONTAINER_DOC_COMMENT = 121,
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
State = {
|
|
||||||
START = 1, IDENTIFIER = 2,
|
|
||||||
BUILTIN = 3, STRING_LITERAL = 5,
|
|
||||||
STRING_LITERAL_BACKSLASH = 6, MULTILINE_STRING_LITERAL_LINE = 7,
|
|
||||||
CHAR_LITERAL = 8, CHAR_LITERAL_BACKSLASH = 9,
|
|
||||||
CHAR_LITERAL_HEX_ESCAPE = 10, CHAR_LITERAL_UNICODE_ESCAPE_SAW_U = 11,
|
|
||||||
CHAR_LITERAL_UNICODE_ESCAPE = 12, CHAR_LITERAL_UNICODE_INVALID = 13,
|
|
||||||
CHAR_LITERAL_UNICODE = 14, CHAR_LITERAL_END = 15,
|
|
||||||
BACKSLASH = 16, EQUAL = 17,
|
|
||||||
BANG = 18, PIPE = 19,
|
|
||||||
MINUS = 20, MINUS_PERCENT = 21,
|
|
||||||
MINUS_PIPE = 22, ASTERISK = 23,
|
|
||||||
ASTERISK_PERCENT = 24, ASTERISK_PIPE = 25,
|
|
||||||
SLASH = 26, LINE_COMMENT_START = 27,
|
|
||||||
LINE_COMMENT = 28, DOC_COMMENT_START = 29,
|
|
||||||
DOC_COMMENT = 30, INT = 31,
|
|
||||||
INT_EXPONENT = 32, INT_PERIOD = 33,
|
|
||||||
FLOAT = 34, FLOAT_EXPONENT = 35,
|
|
||||||
AMPERSAND = 36, CARET = 37,
|
|
||||||
PERCENT = 38, PLUS = 39,
|
|
||||||
PLUS_PERCENT = 40, PLUS_PIPE = 41,
|
|
||||||
ANGLE_BRACKET_LEFT = 42, ANGLE_BRACKET_ANGLE_BRACKET_LEFT = 43,
|
|
||||||
ANGLE_BRACKET_ANGLE_BRACKET_LEFT_PIPE = 44, ANGLE_BRACKET_RIGHT = 45,
|
|
||||||
ANGLE_BRACKET_ANGLE_BRACKET_RIGHT = 46, PERIOD = 47,
|
|
||||||
PERIOD_2 = 48, PERIOD_ASTERISK = 49,
|
|
||||||
SAW_AT_SIGN = 50,
|
|
||||||
}
|
|
||||||
|
|
||||||
Lexer = {
|
|
||||||
Reverse,
|
|
||||||
Tokens,
|
|
||||||
State,
|
|
||||||
x = 0,
|
|
||||||
}
|
|
||||||
|
|
||||||
function Lexer:new()
|
|
||||||
local l = {}
|
|
||||||
setmetatable(l, self)
|
|
||||||
self.__index = self
|
|
||||||
return l
|
|
||||||
end
|
|
||||||
|
|
||||||
function Lexer:lex(char)
|
|
||||||
|
|
||||||
end
|
|
||||||
|
|
||||||
return Lexer
|
|
26
06/Makefile
26
06/Makefile
|
@ -1,23 +1,26 @@
|
||||||
CC= ../05/tcc-0.9.27/tcc
|
CC= ../05/tcc-0.9.27/tcc
|
||||||
TCCINST= ../05/tcc-bootstrap
|
TCCINST= ../05/tcc-bootstrap
|
||||||
MUSLINST= ../05/musl-bootstrap
|
MUSLINST= ../05/musl-bootstrap
|
||||||
LUAINST= lua-bootstrap
|
LUAINST= deps/lua-bootstrap
|
||||||
|
|
||||||
CFLAGS= -I $(MUSLINST)/include -I $(LUAINST)/include -I lpeglabel
|
CFLAGS= -I $(MUSLINST)/include -I $(LUAINST)/include -I deps/lpeglabel
|
||||||
SRCS = $(sort $(wildcard **/*.c))
|
SRCS = $(sort $(wildcard **/*.c))
|
||||||
OBJS = $(SRCS:.c=.o)
|
OBJS = $(SRCS:.c=.o)
|
||||||
|
|
||||||
all: zsh
|
all: zsh
|
||||||
|
|
||||||
lua-bootstrap/lib/liblua.a:
|
deps/lua-bootstrap/lib/liblua.a:
|
||||||
$(MAKE) -j8 -C lua-5.4.6
|
$(MAKE) -j8 -C deps/lua-5.4.6
|
||||||
$(MAKE) -C lua-5.4.6 install
|
$(MAKE) -C deps/lua-5.4.6 install
|
||||||
|
|
||||||
%.o: %.c lua-bootstrap/lib/liblua.a
|
deps/lpeglabel/lpeglabel.a: deps/lua-bootstrap/lib/liblua.a
|
||||||
|
$(MAKE) -C deps/lpeglabel
|
||||||
|
|
||||||
|
%.o: %.c deps/lua-bootstrap/lib/liblua.a
|
||||||
$(CC) $(CFLAGS) -c -o $@ $<
|
$(CC) $(CFLAGS) -c -o $@ $<
|
||||||
|
|
||||||
zsh: $(OBJS) lua-bootstrap/lib/liblua.a
|
zsh: $(OBJS) deps/lua-bootstrap/lib/liblua.a deps/lpeglabel/lpeglabel.a
|
||||||
$(CC) -nostdlib -B $(TCCINST) -o zsh $(OBJS) $(LUAINST)/lib/liblua.a $(MUSLINST)/lib/*.[oa]
|
$(CC) -nostdlib -B $(TCCINST) -o zsh $(OBJS) deps/lpeglabel/lpeglabel.a $(LUAINST)/lib/liblua.a $(MUSLINST)/lib/*.[oa]
|
||||||
|
|
||||||
run: zsh
|
run: zsh
|
||||||
./zsh
|
./zsh
|
||||||
|
@ -25,9 +28,10 @@ run: zsh
|
||||||
c:
|
c:
|
||||||
rm -f zsh
|
rm -f zsh
|
||||||
rm -f src/*.o
|
rm -f src/*.o
|
||||||
rm -f lpeglabel/*.o
|
rm -f deps/lpeglabel/*.o
|
||||||
|
|
||||||
clean: c
|
clean: c
|
||||||
rm -rf lua-bootstrap
|
rm -rf deps/lua-bootstrap
|
||||||
$(MAKE) -C lua-5.4.6 clean
|
$(MAKE) -C deps/lua-5.4.6 clean
|
||||||
|
$(MAKE) -C deps/lpeglabel clean
|
||||||
|
|
||||||
|
|
|
@ -14,3 +14,4 @@ Implement backslashed escaped characters in grammar parser
|
||||||
|
|
||||||
Implement single line comments starting with # in grammar parser
|
Implement single line comments starting with # in grammar parser
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,2 +1,3 @@
|
||||||
lpeglabel.so
|
lpeglabel.so
|
||||||
|
lpeglabel.a
|
||||||
*.o
|
*.o
|
|
@ -1,5 +1,5 @@
|
||||||
local m = require"lpeglabel"
|
local m = require "lpeglabel"
|
||||||
local re = require"relabel"
|
local re = require "relabel"
|
||||||
|
|
||||||
local labels = {
|
local labels = {
|
||||||
{"ExpTermFirst", "expected an expression"},
|
{"ExpTermFirst", "expected an expression"},
|
|
@ -1,5 +1,5 @@
|
||||||
local m = require"lpeglabel"
|
local m = require "lpeglabel"
|
||||||
local re = require"relabel"
|
local re = require "relabel"
|
||||||
|
|
||||||
local num = m.R("09")^1 / tonumber
|
local num = m.R("09")^1 / tonumber
|
||||||
local op = m.S("+-")
|
local op = m.S("+-")
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
@ -22,21 +22,21 @@ CWARNS = -Wall -Wextra -pedantic \
|
||||||
# -Wunreachable-code \
|
# -Wunreachable-code \
|
||||||
|
|
||||||
|
|
||||||
CFLAGS = $(CWARNS) -nostdinc -B ../../05/tcc-bootstrap -I ../../05/musl-bootstrap/include -I$(LUADIR)
|
CFLAGS = $(CWARNS) -nostdinc -B ../../../05/tcc-bootstrap -I ../../../05/musl-bootstrap/include -I$(LUADIR)
|
||||||
CC = ../../05/tcc-0.9.27/tcc
|
CC = ../../../05/tcc-0.9.27/tcc
|
||||||
|
|
||||||
FILES = lpvm.o lpcap.o lptree.o lpcode.o lpprint.o
|
FILES = lpvm.o lpcap.o lptree.o lpcode.o lpprint.o
|
||||||
|
|
||||||
# For Linux
|
# For Linux
|
||||||
linux:
|
linux:
|
||||||
make lpeglabel.so "DLLFLAGS = -shared -nostdlib -B ../../05/tcc-bootstrap "
|
make lpeglabel.a
|
||||||
|
|
||||||
# # For Mac OS
|
# # For Mac OS
|
||||||
# macosx:
|
# macosx:
|
||||||
# make lpeglabel.so "DLLFLAGS = -bundle -undefined dynamic_lookup"
|
# make lpeglabel.so "DLLFLAGS = -bundle -undefined dynamic_lookup"
|
||||||
|
|
||||||
lpeglabel.so: $(FILES)
|
lpeglabel.a: $(FILES)
|
||||||
$(CC) $(DLLFLAGS) $(FILES) -o lpeglabel.so ../lua-bootstrap/lib/liblua.a ../../05/musl-bootstrap/lib/libc.a
|
$(CC) -ar c lpeglabel.a $(FILES)
|
||||||
|
|
||||||
$(FILES): makefile
|
$(FILES): makefile
|
||||||
|
|
|
@ -4,8 +4,9 @@
|
||||||
local tonumber, type, print, error, ipairs = tonumber, type, print, error, ipairs
|
local tonumber, type, print, error, ipairs = tonumber, type, print, error, ipairs
|
||||||
local pcall = pcall
|
local pcall = pcall
|
||||||
local setmetatable = setmetatable
|
local setmetatable = setmetatable
|
||||||
local unpack, tinsert, concat = table.unpack or unpack, table.insert, table.concat
|
local unpack, tinsert, concat = table.unpack, table.insert, table.concat
|
||||||
local rep = string.rep
|
local rep = string.rep
|
||||||
|
-- m is defined in main.c and is equivalent to require ('lpeglabel'
|
||||||
local m = m
|
local m = m
|
||||||
|
|
||||||
-- 'm' will be used to parse expressions, and 'mm' will be used to
|
-- 'm' will be used to parse expressions, and 'mm' will be used to
|
|
@ -12,7 +12,7 @@ local a, b, c, d, e, f, g, p, t
|
||||||
|
|
||||||
|
|
||||||
-- compatibility with Lua 5.2
|
-- compatibility with Lua 5.2
|
||||||
local unpack = rawget(table, "unpack") or unpack
|
local unpack = rawget(table, "unpack")
|
||||||
local loadstring = rawget(_G, "loadstring") or load
|
local loadstring = rawget(_G, "loadstring") or load
|
||||||
|
|
||||||
|
|
Before Width: | Height: | Size: 9.7 KiB After Width: | Height: | Size: 9.7 KiB |
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.7 KiB |
|
@ -6,12 +6,12 @@
|
||||||
# Your platform. See PLATS for possible values.
|
# Your platform. See PLATS for possible values.
|
||||||
PLAT= linux
|
PLAT= linux
|
||||||
|
|
||||||
CC= ../../../05/tcc-0.9.27/tcc
|
CC= ../../../../05/tcc-0.9.27/tcc
|
||||||
CFLAGS= -nostdinc -B ../../../05/tcc-boostrap -I ../../../05/musl-bootstrap/include $(SYSCFLAGS) $(MYCFLAGS)
|
CFLAGS= -nostdinc -B ../../../../05/tcc-boostrap -I ../../../../05/musl-bootstrap/include $(SYSCFLAGS) $(MYCFLAGS)
|
||||||
LDFLAGS= -nostdlib $(SYSLDFLAGS) $(MYLDFLAGS)
|
LDFLAGS= -nostdlib $(SYSLDFLAGS) $(MYLDFLAGS)
|
||||||
LIBS= $(SYSLIBS) $(MYLIBS)
|
LIBS= $(SYSLIBS) $(MYLIBS)
|
||||||
|
|
||||||
AR= ../../../05/tcc-0.9.27/tcc -ar rc
|
AR= ../../../../05/tcc-0.9.27/tcc -ar rc
|
||||||
RANLIB= ranlib
|
RANLIB= ranlib
|
||||||
RM= rm -f
|
RM= rm -f
|
||||||
UNAME= uname
|
UNAME= uname
|
||||||
|
@ -61,10 +61,10 @@ $(LUA_A): $(BASE_O)
|
||||||
$(RANLIB) $@
|
$(RANLIB) $@
|
||||||
|
|
||||||
$(LUA_T): $(LUA_O) $(LUA_A)
|
$(LUA_T): $(LUA_O) $(LUA_A)
|
||||||
$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ../../../05/musl-bootstrap/lib/*.[oa]
|
$(CC) -o $@ $(LDFLAGS) $(LUA_O) $(LUA_A) $(LIBS) ../../../../05/musl-bootstrap/lib/*.[oa]
|
||||||
|
|
||||||
$(LUAC_T): $(LUAC_O) $(LUA_A)
|
$(LUAC_T): $(LUAC_O) $(LUA_A)
|
||||||
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ../../../05/musl-bootstrap/lib/*.[oa]
|
$(CC) -o $@ $(LDFLAGS) $(LUAC_O) $(LUA_A) $(LIBS) ../../../../05/musl-bootstrap/lib/*.[oa]
|
||||||
|
|
||||||
test:
|
test:
|
||||||
./$(LUA_T) -v
|
./$(LUA_T) -v
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue