From ea26acce4ae807626ccef2ed23be46e8097998b9 Mon Sep 17 00:00:00 2001 From: Clemens-Dautermann Date: Sat, 15 Aug 2020 23:36:29 +0200 Subject: [PATCH] Implemented lexer --- .gitignore | 3 + .idea/.idea.lpc.dir/.idea/.idea.lpc.dir.iml | 8 + .idea/.idea.lpc.dir/riderModule.iml | 7 + .idea/lpc.iml | 10 + .../.idea.Compiler/.idea/.idea.Compiler.iml | 8 + .../.idea.Compiler/.idea/contentModel.xml | 25 ++ .../.idea.Compiler/.idea/indexLayout.xml | 8 + Compiler/.idea/.idea.Compiler/.idea/misc.xml | 6 + .../.idea/.idea.Compiler/.idea/modules.xml | 9 + .../.idea/projectSettingsUpdater.xml | 6 + Compiler/.idea/.idea.Compiler/.idea/vcs.xml | 6 + .../.idea/.idea.Compiler/.idea/workspace.xml | 264 ++++++++++++++++++ Compiler/.idea/.idea.Compiler/riderModule.iml | 7 + Compiler/Compiler.cs | 36 +++ Compiler/Compiler.csproj | 8 + Compiler/Compiler.sln | 16 ++ Compiler/Lexer.cs | 98 +++++++ Compiler/Pattern.cs | 27 ++ Compiler/Token.cs | 28 ++ Compiler/TokenType.cs | 19 ++ grammar | 0 test.s | 4 + tests/week_1/invalid/missing_paren.c | 3 + tests/week_1/invalid/missing_retval.c | 3 + tests/week_1/invalid/no_brace.c | 2 + tests/week_1/invalid/no_semicolon.c | 3 + tests/week_1/invalid/no_space.c | 3 + tests/week_1/invalid/wrong_case.c | 3 + tests/week_1/valid/multi_digit.c | 3 + tests/week_1/valid/newlines.c | 10 + tests/week_1/valid/no_newlines.c | 1 + tests/week_1/valid/return_0.c | 3 + tests/week_1/valid/return_2.c | 3 + tests/week_1/valid/spaces.c | 1 + 34 files changed, 641 insertions(+) create mode 100644 .idea/.idea.lpc.dir/.idea/.idea.lpc.dir.iml create mode 100644 .idea/.idea.lpc.dir/riderModule.iml create mode 100644 .idea/lpc.iml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/.idea.Compiler.iml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/contentModel.xml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/indexLayout.xml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/misc.xml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/modules.xml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/projectSettingsUpdater.xml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/vcs.xml create mode 100644 Compiler/.idea/.idea.Compiler/.idea/workspace.xml create mode 100644 Compiler/.idea/.idea.Compiler/riderModule.iml create mode 100644 Compiler/Compiler.cs create mode 100644 Compiler/Compiler.csproj create mode 100644 Compiler/Compiler.sln create mode 100644 Compiler/Lexer.cs create mode 100644 Compiler/Pattern.cs create mode 100644 Compiler/Token.cs create mode 100644 Compiler/TokenType.cs create mode 100644 grammar create mode 100644 test.s create mode 100644 tests/week_1/invalid/missing_paren.c create mode 100644 tests/week_1/invalid/missing_retval.c create mode 100644 tests/week_1/invalid/no_brace.c create mode 100644 tests/week_1/invalid/no_semicolon.c create mode 100644 tests/week_1/invalid/no_space.c create mode 100644 tests/week_1/invalid/wrong_case.c create mode 100644 tests/week_1/valid/multi_digit.c create mode 100644 tests/week_1/valid/newlines.c create mode 100644 tests/week_1/valid/no_newlines.c create mode 100644 tests/week_1/valid/return_0.c create mode 100644 tests/week_1/valid/return_2.c create mode 100644 tests/week_1/valid/spaces.c diff --git a/.gitignore b/.gitignore index 09dd1da..78f9d84 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,4 @@ venv/* +Compiler/bin/* +Compiler/obj/* +.idea/* diff --git a/.idea/.idea.lpc.dir/.idea/.idea.lpc.dir.iml b/.idea/.idea.lpc.dir/.idea/.idea.lpc.dir.iml new file mode 100644 index 0000000..e6bc2ca --- /dev/null +++ b/.idea/.idea.lpc.dir/.idea/.idea.lpc.dir.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/.idea.lpc.dir/riderModule.iml b/.idea/.idea.lpc.dir/riderModule.iml new file mode 100644 index 0000000..1a4e0d9 --- /dev/null +++ b/.idea/.idea.lpc.dir/riderModule.iml @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/.idea/lpc.iml b/.idea/lpc.iml new file mode 100644 index 0000000..593064c --- /dev/null +++ b/.idea/lpc.iml @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/.idea.Compiler.iml b/Compiler/.idea/.idea.Compiler/.idea/.idea.Compiler.iml new file mode 100644 index 0000000..e6bc2ca --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/.idea.Compiler.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/contentModel.xml b/Compiler/.idea/.idea.Compiler/.idea/contentModel.xml new file mode 100644 index 0000000..0f74968 --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/contentModel.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/indexLayout.xml b/Compiler/.idea/.idea.Compiler/.idea/indexLayout.xml new file mode 100644 index 0000000..27ba142 --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/indexLayout.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/misc.xml b/Compiler/.idea/.idea.Compiler/.idea/misc.xml new file mode 100644 index 0000000..28a804d --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/modules.xml b/Compiler/.idea/.idea.Compiler/.idea/modules.xml new file mode 100644 index 0000000..fc752e6 --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/modules.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/projectSettingsUpdater.xml b/Compiler/.idea/.idea.Compiler/.idea/projectSettingsUpdater.xml new file mode 100644 index 0000000..4bb9f4d --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/projectSettingsUpdater.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/vcs.xml b/Compiler/.idea/.idea.Compiler/.idea/vcs.xml new file mode 100644 index 0000000..6c0b863 --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Compiler/.idea/.idea.Compiler/.idea/workspace.xml b/Compiler/.idea/.idea.Compiler/.idea/workspace.xml new file mode 100644 index 0000000..1ec3fd0 --- /dev/null +++ b/Compiler/.idea/.idea.Compiler/.idea/workspace.xml @@ -0,0 +1,264 @@ + + + + + + + + + + + + + + + + + + +