mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-19 16:54:08 +10:00
4
.gitignore
vendored
4
.gitignore
vendored
@@ -4,6 +4,7 @@
|
||||
*.suo
|
||||
*.ncb
|
||||
*.user
|
||||
compile_commands.json
|
||||
|
||||
#Directories
|
||||
Release/
|
||||
@@ -12,6 +13,7 @@ Out/
|
||||
release/
|
||||
debug/
|
||||
out/
|
||||
.cache/
|
||||
|
||||
#Project generated files
|
||||
*.db
|
||||
@@ -26,4 +28,4 @@ out
|
||||
|
||||
#Shell files
|
||||
*.bat
|
||||
*.sh
|
||||
*.sh
|
||||
|
||||
@@ -19,11 +19,9 @@ Special thanks to http://craftinginterpreters.com/ for their fantastic book that
|
||||
|
||||
## Building
|
||||
|
||||
For windows, simply run `make` in the root directory.
|
||||
For Windows and MacOS, simply run `make` in the root directory.
|
||||
|
||||
For linux, run `make repl-static` in the root directory (see [this issue for details](https://github.com/Ratstail91/Toy/issues/26)).
|
||||
|
||||
For mac, good luck.
|
||||
For Linux, run `make repl-static` in the root directory (see [this issue for details](https://github.com/Ratstail91/Toy/issues/26)).
|
||||
|
||||
## Syntax
|
||||
|
||||
@@ -70,4 +68,4 @@ Permission is granted to anyone to use this software for any purpose, including
|
||||
|
||||
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
|
||||
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
3. This notice may not be removed or altered from any source distribution.
|
||||
|
||||
10
makefile
10
makefile
@@ -45,6 +45,16 @@ else ifeq ($(shell uname),Linux)
|
||||
find . -empty -type d -delete
|
||||
else ifeq ($(OS),Windows_NT)
|
||||
$(RM) *.o *.a *.exe
|
||||
else ifeq ($(shell uname),Darwin)
|
||||
find . -type f -name '*.o' -exec rm -f -r -v {} \;
|
||||
find . -type f -name '*.a' -exec rm -f -r -v {} \;
|
||||
find . -type f -name '*.exe' -exec rm -f -r -v {} \;
|
||||
find . -type f -name '*.dll' -exec rm -f -r -v {} \;
|
||||
find . -type f -name '*.lib' -exec rm -f -r -v {} \;
|
||||
find . -type f -name '*.dylib' -exec rm -f -r -v {} \;
|
||||
find . -type f -name '*.so' -exec rm -f -r -v {} \;
|
||||
rm -rf out
|
||||
find . -empty -type d -delete
|
||||
else
|
||||
@echo "Deletion failed - what platform is this?"
|
||||
endif
|
||||
|
||||
@@ -96,4 +96,3 @@ int hookStandard(Interpreter* interpreter, Literal identifier, Literal alias) {
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
@@ -7,11 +7,16 @@ LIBS+=-ltoy
|
||||
ODIR = obj
|
||||
SRC = $(wildcard *.c)
|
||||
OBJ = $(addprefix $(ODIR)/,$(SRC:.c=.o))
|
||||
|
||||
OUTNAME=toy
|
||||
OUT=../$(TOY_OUTDIR)/toyrepl
|
||||
|
||||
all: $(OBJ)
|
||||
ifeq ($(shell uname),Darwin)
|
||||
cp $(PWD)/$(TOY_OUTDIR)/lib$(OUTNAME).dylib /usr/local/lib/
|
||||
$(CC) -DTOY_IMPORT $(CFLAGS) -o $(OUT) $(OBJ) $(LIBS)
|
||||
else
|
||||
$(CC) -DTOY_IMPORT $(CFLAGS) -o $(OUT) $(OBJ) -L$(realpath $(shell pwd)/../$(TOY_OUTDIR)) $(LIBS)
|
||||
endif
|
||||
|
||||
$(OBJ): | $(ODIR)
|
||||
|
||||
@@ -25,3 +30,4 @@ $(ODIR)/%.o: %.c
|
||||
|
||||
clean:
|
||||
$(RM) $(ODIR)
|
||||
rm /usr/local/lib/lib$(OUTNAME).dylib
|
||||
|
||||
@@ -172,4 +172,4 @@ void emitASTNodePrefixIncrement(ASTNode** nodeHandle, Literal identifier, int in
|
||||
void emitASTNodePostfixIncrement(ASTNode** nodeHandle, Literal identifier, int increment);
|
||||
void emitASTNodeImport(ASTNode** nodeHandle, ASTNodeType mode, Literal identifier, Literal alias);
|
||||
void emitASTNodeIndex(ASTNode** nodeHandle, ASTNode* first, ASTNode* second, ASTNode* third);
|
||||
void emitASTNodeDot(ASTNode** nodeHandle, ASTNode* first);
|
||||
void emitASTNodeDot(ASTNode** nodeHandle, ASTNode* first);
|
||||
|
||||
@@ -9,4 +9,3 @@ int _push(Interpreter* interpreter, LiteralArray* arguments);
|
||||
int _pop(Interpreter* interpreter, LiteralArray* arguments);
|
||||
int _length(Interpreter* interpreter, LiteralArray* arguments);
|
||||
int _clear(Interpreter* interpreter, LiteralArray* arguments);
|
||||
|
||||
|
||||
@@ -122,4 +122,4 @@ void copyrightCommand(int argc, const char* argv[]) {
|
||||
printf("3. This notice may not be removed or altered from any source distribution.\n\n");
|
||||
}
|
||||
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -40,4 +40,4 @@ void copyrightCommand(int argc, const char* argv[]);
|
||||
#endif
|
||||
|
||||
//NOTE: assigning to a byte from a short loses data
|
||||
#define AS_USHORT(value) (*(unsigned short*)(&(value)))
|
||||
#define AS_USHORT(value) (*(unsigned short*)(&(value)))
|
||||
|
||||
@@ -27,4 +27,4 @@
|
||||
#define NOTICE FONT_GREEN BACK_BLACK
|
||||
#define WARN FONT_YELLOW BACK_BLACK
|
||||
#define ERROR FONT_RED BACK_BLACK
|
||||
#define RESET "\033[0m"
|
||||
#define RESET "\033[0m"
|
||||
|
||||
@@ -73,4 +73,4 @@ TokenType findTypeByKeyword(const char* keyword) {
|
||||
}
|
||||
|
||||
return TOKEN_EOF;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,4 +11,4 @@ extern KeywordType keywordTypes[];
|
||||
|
||||
char* findKeywordByType(TokenType type);
|
||||
|
||||
TokenType findTypeByKeyword(const char* keyword);
|
||||
TokenType findTypeByKeyword(const char* keyword);
|
||||
|
||||
@@ -345,4 +345,4 @@ void printToken(Token* token) {
|
||||
}
|
||||
|
||||
printf("\n");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -23,4 +23,4 @@ TOY_API void initLexer(Lexer* lexer, char* source);
|
||||
Token scanLexer(Lexer* lexer);
|
||||
|
||||
//for debugging
|
||||
void printToken(Token* token);
|
||||
void printToken(Token* token);
|
||||
|
||||
@@ -97,4 +97,4 @@ Literal getLiteralArray(LiteralArray* array, Literal index) {
|
||||
}
|
||||
|
||||
return copyLiteral(array->literals[idx]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,6 +21,9 @@ else ifeq ($(shell uname),Linux)
|
||||
else ifeq ($(OS),Windows_NT)
|
||||
LIBLINE =-Wl,--out-implib=../$(TOY_OUTDIR)/lib$(OUTNAME).dll.a -Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive $(OBJ) -Wl,--no-whole-archive
|
||||
OUT=../$(TOY_OUTDIR)/$(OUTNAME).dll
|
||||
else ifeq ($(shell uname),Darwin)
|
||||
LIBLINE = $(OBJ)
|
||||
OUT=../$(TOY_OUTDIR)/lib$(OUTNAME).dylib
|
||||
else
|
||||
@echo "Platform test failed - what platform is this?"
|
||||
exit 1
|
||||
|
||||
Reference in New Issue
Block a user