mirror of
https://github.com/krgamestudios/Toy.git
synced 2026-04-15 14:54:07 +10:00
Adjusted some includes
This commit is contained in:
84
source/common.c
Normal file
84
source/common.c
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
#include "common.h"
|
||||||
|
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <string.h>
|
||||||
|
|
||||||
|
//declare the singleton
|
||||||
|
Command command;
|
||||||
|
|
||||||
|
void initCommand(int argc, const char* argv[]) {
|
||||||
|
//default values
|
||||||
|
command.error = false;
|
||||||
|
command.help = false;
|
||||||
|
command.version = false;
|
||||||
|
command.filename = NULL;
|
||||||
|
command.source = NULL;
|
||||||
|
command.verbose = false;
|
||||||
|
command.optimize = 1;
|
||||||
|
|
||||||
|
for (int i = 1; i < argc; i++) { //start at 1 to skip the program name
|
||||||
|
if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
|
||||||
|
command.help = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) {
|
||||||
|
command.version = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((!strcmp(argv[i], "-f") || !strcmp(argv[i], "--file")) && i + 1 < argc) {
|
||||||
|
command.filename = (char*)argv[i + 1];
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((!strcmp(argv[i], "-i") || !strcmp(argv[i], "--input")) && i + 1 < argc) {
|
||||||
|
command.source = (char*)argv[i + 1];
|
||||||
|
i++;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strcmp(argv[i], "-d") || !strcmp(argv[i], "--debug")) {
|
||||||
|
command.verbose = true;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!strncmp(argv[i], "-O", 2)) {
|
||||||
|
sscanf(argv[i], "-O%d", &command.optimize);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
command.error = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//no arguments
|
||||||
|
if (argc == 1) {
|
||||||
|
command.error = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void usageCommand(int argc, const char* argv[]) {
|
||||||
|
printf("Usage: %s [-h | -v | [-OX][-d][-f filename | -i source]]\n\n", argv[0]);
|
||||||
|
}
|
||||||
|
|
||||||
|
void helpCommand(int argc, const char* argv[]) {
|
||||||
|
usageCommand(argc, argv);
|
||||||
|
|
||||||
|
printf("-h | --help\t\tShow this help then exit.\n");
|
||||||
|
printf("-v | --version\t\tShow version and copyright information then exit.\n");
|
||||||
|
printf("-f | --file filename\tParse and execute the source file.\n");
|
||||||
|
printf("-i | --input source\tParse and execute this given string of source code.\n");
|
||||||
|
printf("-d | --debug\t\tBe verbose when operating.\n");
|
||||||
|
printf("-OX\t\t\tUse level X optimization (default 1)\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
void copyrightCommand(int argc, const char* argv[]) {
|
||||||
|
printf("Toy Programming Language Interpreter Version %d.%d.%d (built on %s)\n\n", TOY_VERSION_MAJOR, TOY_VERSION_MINOR, TOY_VERSION_PATCH, TOY_VERSION_BUILD);
|
||||||
|
printf("Copyright (c) 2020-2022 Kayne Ruse, KR Game Studios\n\n");
|
||||||
|
printf("This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.\n\n");
|
||||||
|
printf("Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:\n\n");
|
||||||
|
printf("1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.\n\n");
|
||||||
|
printf("2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.\n\n");
|
||||||
|
printf("3. This notice may not be removed or altered from any source distribution.\n\n");
|
||||||
|
}
|
||||||
@@ -7,5 +7,23 @@
|
|||||||
#define TOY_VERSION_MAJOR 0
|
#define TOY_VERSION_MAJOR 0
|
||||||
#define TOY_VERSION_MINOR 6
|
#define TOY_VERSION_MINOR 6
|
||||||
#define TOY_VERSION_PATCH 0
|
#define TOY_VERSION_PATCH 0
|
||||||
#define TOY_VERSION_BUILD __DATE__ ";" __TIME__
|
#define TOY_VERSION_BUILD __DATE__ " " __TIME__
|
||||||
|
|
||||||
|
//for processing the command line arguments
|
||||||
|
typedef struct {
|
||||||
|
bool error;
|
||||||
|
bool help;
|
||||||
|
bool version;
|
||||||
|
char* filename;
|
||||||
|
char* source;
|
||||||
|
bool verbose;
|
||||||
|
int optimize;
|
||||||
|
} Command;
|
||||||
|
|
||||||
|
extern Command command;
|
||||||
|
|
||||||
|
void initCommand(int argc, const char* argv[]);
|
||||||
|
|
||||||
|
void usageCommand(int argc, const char* argv[]);
|
||||||
|
void helpCommand(int argc, const char* argv[]);
|
||||||
|
void copyrightCommand(int argc, const char* argv[]);
|
||||||
@@ -6,88 +6,6 @@
|
|||||||
#include "compiler.h"
|
#include "compiler.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <stdlib.h>
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
//declare the singleton
|
|
||||||
Command command;
|
|
||||||
|
|
||||||
void initCommand(int argc, const char* argv[]) {
|
|
||||||
//default values
|
|
||||||
command.error = false;
|
|
||||||
command.help = false;
|
|
||||||
command.version = false;
|
|
||||||
command.filename = NULL;
|
|
||||||
command.source = NULL;
|
|
||||||
command.verbose = false;
|
|
||||||
command.optimize = 1;
|
|
||||||
|
|
||||||
for (int i = 1; i < argc; i++) { //start at 1 to skip the program name
|
|
||||||
if (!strcmp(argv[i], "-h") || !strcmp(argv[i], "--help")) {
|
|
||||||
command.help = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!strcmp(argv[i], "-v") || !strcmp(argv[i], "--version")) {
|
|
||||||
command.version = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((!strcmp(argv[i], "-f") || !strcmp(argv[i], "--file")) && i + 1 < argc) {
|
|
||||||
command.filename = (char*)argv[i + 1];
|
|
||||||
i++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((!strcmp(argv[i], "-i") || !strcmp(argv[i], "--input")) && i + 1 < argc) {
|
|
||||||
command.source = (char*)argv[i + 1];
|
|
||||||
i++;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!strcmp(argv[i], "-d") || !strcmp(argv[i], "--debug")) {
|
|
||||||
command.verbose = true;
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!strncmp(argv[i], "-O", 2)) {
|
|
||||||
sscanf(argv[i], "-O%d", &command.optimize);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
command.error = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//no arguments
|
|
||||||
if (argc == 1) {
|
|
||||||
command.error = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void usageCommand(int argc, const char* argv[]) {
|
|
||||||
printf("Usage: %s [-h | -v | [-OX][-d][-f filename | -i source]]\n\n", argv[0]);
|
|
||||||
}
|
|
||||||
|
|
||||||
void helpCommand(int argc, const char* argv[]) {
|
|
||||||
usageCommand(argc, argv);
|
|
||||||
|
|
||||||
printf("-h | --help\t\tShow this help then exit.\n");
|
|
||||||
printf("-v | --version\t\tShow version and copyright information then exit.\n");
|
|
||||||
printf("-f | --file filename\tParse and execute the source file.\n");
|
|
||||||
printf("-i | --input source\tParse and execute this given string of source code.\n");
|
|
||||||
printf("-d | --debug\t\tBe verbose when operating.\n");
|
|
||||||
printf("-OX\t\t\tUse level X optimization (default 1)\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
void copyrightCommand(int argc, const char* argv[]) {
|
|
||||||
printf("Toy Programming Language Interpreter Version %d.%d.%d (built on %s)\n\n", TOY_VERSION_MAJOR, TOY_VERSION_MINOR, TOY_VERSION_PATCH, TOY_VERSION_BUILD);
|
|
||||||
printf("Copyright (c) 2020-2022 Kayne Ruse, KR Game Studios\n\n");
|
|
||||||
printf("This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.\n\n");
|
|
||||||
printf("Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:\n\n");
|
|
||||||
printf("1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.\n\n");
|
|
||||||
printf("2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.\n\n");
|
|
||||||
printf("3. This notice may not be removed or altered from any source distribution.\n\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
//utils
|
//utils
|
||||||
static unsigned char printByte(const char* tb, int* count) {
|
static unsigned char printByte(const char* tb, int* count) {
|
||||||
|
|||||||
@@ -2,23 +2,4 @@
|
|||||||
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
//for processing the command line arguments
|
|
||||||
typedef struct {
|
|
||||||
bool error;
|
|
||||||
bool help;
|
|
||||||
bool version;
|
|
||||||
char* filename;
|
|
||||||
char* source;
|
|
||||||
bool verbose;
|
|
||||||
int optimize;
|
|
||||||
} Command;
|
|
||||||
|
|
||||||
extern Command command;
|
|
||||||
|
|
||||||
void initCommand(int argc, const char* argv[]);
|
|
||||||
|
|
||||||
void usageCommand(int argc, const char* argv[]);
|
|
||||||
void helpCommand(int argc, const char* argv[]);
|
|
||||||
void copyrightCommand(int argc, const char* argv[]);
|
|
||||||
|
|
||||||
void dissectBytecode(const char* tb, int size);
|
void dissectBytecode(const char* tb, int size);
|
||||||
@@ -1,8 +1,6 @@
|
|||||||
#include "lexer.h"
|
#include "lexer.h"
|
||||||
#include "keyword_types.h"
|
#include "keyword_types.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#include "literal.h"
|
#include "literal.h"
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
#include "debug.h"
|
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|||||||
@@ -1,6 +1,5 @@
|
|||||||
#include "parser.h"
|
#include "parser.h"
|
||||||
|
|
||||||
#include "debug.h"
|
|
||||||
#include "common.h"
|
#include "common.h"
|
||||||
|
|
||||||
#include "memory.h"
|
#include "memory.h"
|
||||||
|
|||||||
Reference in New Issue
Block a user