├── .github └── workflows │ ├── codeql-analysis.yml │ ├── main.yml │ └── remove-old-artifacts.yml ├── .gitignore ├── CMakeLists.txt ├── LICENSE ├── README.md ├── src ├── analysis.c ├── analysis.h ├── argParser.c ├── argParser.h ├── assemble.c ├── assemble.h ├── ast.c ├── ast.h ├── astLower.c ├── astLower.h ├── colorText.c ├── colorText.h ├── driver.c ├── driver.h ├── file.c ├── file.h ├── ir.c ├── ir.h ├── lex.c ├── lex.h ├── lexString.c ├── lexString.h ├── lextoken.h ├── main.c ├── memory.c ├── memory.h ├── parser.c ├── parser.h ├── scanner.c ├── scanner.h ├── symbolTable.c ├── symbolTable.h ├── test.c ├── test.h ├── token.c ├── token.h ├── x64.c ├── x64.h ├── x64Encode.c └── x64Encode.h └── test ├── additionSpacing.har ├── commaVaArgs.har ├── errorDirective.har ├── ifDirectiveErrors.har ├── ifdefElse.har ├── initialLineMacro.har ├── irBuilderTest.c ├── longStringSpacing.har ├── macroVaArgs.har ├── macroinclude.har ├── nestedIdentity.har ├── noCommaVaArgs.har ├── noTrigraphs.har ├── nonMacroVaArgs.har ├── nulTokenMacros.har ├── objectJoining.har ├── optionalVariadac.har ├── re-examinaionExample.har ├── simpleifndef.har ├── stringificationEscape.har ├── test.c ├── test2.c ├── tokenJoinExample.har ├── trigraphs.har ├── vaArgsEOF.har └── vregValidate.py /.github/workflows/codeql-analysis.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/.github/workflows/codeql-analysis.yml -------------------------------------------------------------------------------- /.github/workflows/main.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/.github/workflows/main.yml -------------------------------------------------------------------------------- /.github/workflows/remove-old-artifacts.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/.github/workflows/remove-old-artifacts.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | build/ 2 | .vscode -------------------------------------------------------------------------------- /CMakeLists.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/CMakeLists.txt -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/README.md -------------------------------------------------------------------------------- /src/analysis.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/analysis.c -------------------------------------------------------------------------------- /src/analysis.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/analysis.h -------------------------------------------------------------------------------- /src/argParser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/argParser.c -------------------------------------------------------------------------------- /src/argParser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/argParser.h -------------------------------------------------------------------------------- /src/assemble.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/assemble.c -------------------------------------------------------------------------------- /src/assemble.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/assemble.h -------------------------------------------------------------------------------- /src/ast.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/ast.c -------------------------------------------------------------------------------- /src/ast.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/ast.h -------------------------------------------------------------------------------- /src/astLower.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/astLower.c -------------------------------------------------------------------------------- /src/astLower.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/astLower.h -------------------------------------------------------------------------------- /src/colorText.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/colorText.c -------------------------------------------------------------------------------- /src/colorText.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/colorText.h -------------------------------------------------------------------------------- /src/driver.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/driver.c -------------------------------------------------------------------------------- /src/driver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/driver.h -------------------------------------------------------------------------------- /src/file.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/file.c -------------------------------------------------------------------------------- /src/file.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/file.h -------------------------------------------------------------------------------- /src/ir.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/ir.c -------------------------------------------------------------------------------- /src/ir.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/ir.h -------------------------------------------------------------------------------- /src/lex.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/lex.c -------------------------------------------------------------------------------- /src/lex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/lex.h -------------------------------------------------------------------------------- /src/lexString.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/lexString.c -------------------------------------------------------------------------------- /src/lexString.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/lexString.h -------------------------------------------------------------------------------- /src/lextoken.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/lextoken.h -------------------------------------------------------------------------------- /src/main.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/main.c -------------------------------------------------------------------------------- /src/memory.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/memory.c -------------------------------------------------------------------------------- /src/memory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/memory.h -------------------------------------------------------------------------------- /src/parser.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/parser.c -------------------------------------------------------------------------------- /src/parser.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/parser.h -------------------------------------------------------------------------------- /src/scanner.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/scanner.c -------------------------------------------------------------------------------- /src/scanner.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/scanner.h -------------------------------------------------------------------------------- /src/symbolTable.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/symbolTable.c -------------------------------------------------------------------------------- /src/symbolTable.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/symbolTable.h -------------------------------------------------------------------------------- /src/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/test.c -------------------------------------------------------------------------------- /src/test.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/test.h -------------------------------------------------------------------------------- /src/token.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/token.c -------------------------------------------------------------------------------- /src/token.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/token.h -------------------------------------------------------------------------------- /src/x64.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/x64.c -------------------------------------------------------------------------------- /src/x64.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/x64.h -------------------------------------------------------------------------------- /src/x64Encode.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/x64Encode.c -------------------------------------------------------------------------------- /src/x64Encode.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/src/x64Encode.h -------------------------------------------------------------------------------- /test/additionSpacing.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/additionSpacing.har -------------------------------------------------------------------------------- /test/commaVaArgs.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/commaVaArgs.har -------------------------------------------------------------------------------- /test/errorDirective.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/errorDirective.har -------------------------------------------------------------------------------- /test/ifDirectiveErrors.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/ifDirectiveErrors.har -------------------------------------------------------------------------------- /test/ifdefElse.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/ifdefElse.har -------------------------------------------------------------------------------- /test/initialLineMacro.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/initialLineMacro.har -------------------------------------------------------------------------------- /test/irBuilderTest.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/irBuilderTest.c -------------------------------------------------------------------------------- /test/longStringSpacing.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/longStringSpacing.har -------------------------------------------------------------------------------- /test/macroVaArgs.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/macroVaArgs.har -------------------------------------------------------------------------------- /test/macroinclude.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/macroinclude.har -------------------------------------------------------------------------------- /test/nestedIdentity.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/nestedIdentity.har -------------------------------------------------------------------------------- /test/noCommaVaArgs.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/noCommaVaArgs.har -------------------------------------------------------------------------------- /test/noTrigraphs.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/noTrigraphs.har -------------------------------------------------------------------------------- /test/nonMacroVaArgs.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/nonMacroVaArgs.har -------------------------------------------------------------------------------- /test/nulTokenMacros.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/nulTokenMacros.har -------------------------------------------------------------------------------- /test/objectJoining.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/objectJoining.har -------------------------------------------------------------------------------- /test/optionalVariadac.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/optionalVariadac.har -------------------------------------------------------------------------------- /test/re-examinaionExample.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/re-examinaionExample.har -------------------------------------------------------------------------------- /test/simpleifndef.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/simpleifndef.har -------------------------------------------------------------------------------- /test/stringificationEscape.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/stringificationEscape.har -------------------------------------------------------------------------------- /test/test.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/test.c -------------------------------------------------------------------------------- /test/test2.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/test2.c -------------------------------------------------------------------------------- /test/tokenJoinExample.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/tokenJoinExample.har -------------------------------------------------------------------------------- /test/trigraphs.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/trigraphs.har -------------------------------------------------------------------------------- /test/vaArgsEOF.har: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/vaArgsEOF.har -------------------------------------------------------------------------------- /test/vregValidate.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/OrangeBacon/mcc/HEAD/test/vregValidate.py --------------------------------------------------------------------------------