htcc-0.0.0.1: The full scratch implementation of tiny C compiler (x86_64)
The full scratch implementation of tiny C compiler (x86_64). This compiler outputs x86_64 assembly code from "general" C code.
It consists of:
- the lexical analyzer
- the parser that performs parsing with recursive descent and construction of abstract syntax trees (ASTs)
- the method that outputs x86_64 assembly code from ASTs
This compiler is not practical purposes, but focuses on implementation experiments.
For more information, please see the README on GitHub at https://github.com/falgon/htcc#readme.
- Htcc
- Htcc.Asm The modules of C Rules
- Htcc.Asm.Generate The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Generate.Core The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic.Operand Types and classes of the x86_64 operands
- Htcc.Asm.Intrinsic.Register Types and classes of the x86_64 registers
- Htcc.Asm.Intrinsic.Structure The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic.Structure.Internal The modules of intrinsic (x86_64) assembly
- Section
- Htcc.Asm.Intrinsic.Structure.Section.Data The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic.Structure.Section.Text The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic.Structure.Section.Text.Directive The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic.Structure.Section.Text.Instruction The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Intrinsic.Structure.Section.Text.Operations The modules of intrinsic (x86_64) assembly
- Htcc.Asm.Generate The modules of intrinsic (x86_64) assembly
- Htcc.CRules The modules of C Rules
- Htcc.CRules.Char Characters rules of C language
- Htcc.CRules.LexicalElements LexicalElements of C language
- Htcc.CRules.Preprocessor The rules of preprocessor of C language
- Htcc.CRules.Preprocessor.Core The preprocessor
- Htcc.CRules.Preprocessor.Punctuators The puncuators of preprocessor
- Htcc.CRules.Types The rules of types of C language
- Htcc.CRules.Types.CType The rules of types of C language
- Htcc.CRules.Types.StorageClass The storage-class of C language
- Htcc.CRules.Types.TypeKind The types of C language
- Htcc.Parser Parsing and constructing AST from string
- Htcc.Parser.AST Data types and type synonyms used during AST construction
- Htcc.Parser.AST.Core The AST data type and its utilities
- Htcc.Parser.AST.DeduceKind Data types and type synonyms used during AST construction
- Htcc.Parser.AST.Type Data types and type synonyms used during AST construction
- Htcc.Parser.AST.Var Data types and type synonyms used during AST construction
- Htcc.Parser.AST.Var.Init The C languge parser and AST constructor
- Htcc.Parser.ConstructionData Data types and type synonyms used during AST construction
- Htcc.Parser.ConstructionData.Core Data types and type synonyms used during AST construction
- Htcc.Parser.ConstructionData.Scope The Data type of scope and its utilities used in parsing
- Htcc.Parser.ConstructionData.Scope.Enumerator The Data type of typedef and its utilities used in parsing
- Htcc.Parser.ConstructionData.Scope.Function The Data type of typedef and its utilities used in parsing
- Htcc.Parser.ConstructionData.Scope.ManagedScope The Data type of typedef and its utilities used in parsing
- Htcc.Parser.ConstructionData.Scope.Tag The Data type of struct and its utilities used in parsing
- Htcc.Parser.ConstructionData.Scope.Typedef The Data type of typedef and its utilities used in parsing
- Htcc.Parser.ConstructionData.Scope.Utils Utilities used to handle scopes
- Htcc.Parser.ConstructionData.Scope.Var The Data type of variables and its utilities used in parsing
- Htcc.Parser.Parsing The main routines for parsing
- Htcc.Parser.Parsing.Core The C languge parser and AST constructor
- Htcc.Parser.Parsing.Global The C languge parser and AST constructor
- Htcc.Parser.Parsing.Global.Function The C languge parser and AST constructor
- Htcc.Parser.Parsing.Global.Var The C languge parser and AST constructor
- Htcc.Parser.Parsing.StmtExpr The C languge parser and AST constructor
- Htcc.Parser.Parsing.Type The C languge parser and AST constructor
- Htcc.Parser.Parsing.Typedef The C languge parser and AST constructor
- Htcc.Parser.Utils Data types and type synonyms used during AST construction
- Htcc.Parser.Utils.Core The AST data type and its utilities
- Htcc.Parser.AST Data types and type synonyms used during AST construction
- Htcc.Tokenizer Tokenizer
- Htcc.Tokenizer.Core Tokenizer
- Htcc.Tokenizer.Token Types used in lexical analysis and their utility functions
- Htcc.Utils Utilities
- Htcc.Utils.Bool Utilities of boolean
- Htcc.Utils.CompilationState Utilities
- Htcc.Utils.List Utilities
- Htcc.Utils.NaturalTransformations Utilities of natural transformations
- Htcc.Utils.Print Utilities
- Htcc.Utils.Text Utilities
- Htcc.Utils.Tuple Utilities
- Htcc.Visualizer Build AST from C source code
- Htcc.Visualizer.Core Build AST from C source code
- Htcc.Asm The modules of C Rules