sammine-lang
Loading...
Searching...
No Matches
File List
Here is a list of all documented files with brief descriptions:
[detail level 123]
  include
  ast
 Ast.hDefined the AST Node classes (ProgramAST, RecordDefAST, FuncDefAST) and a visitor interface for traversing the AST
 AstBase.hDefines the AST Abstract class for printing out AST Nodes
 AstDecl.hHolds declaration for all the AST Nodes
  codegen
 CodegenUtils.h
 CodegenVisitor.hDefined CgVisitor, which lowers ASTs to LLVM IR
 Garbage.hHouses ShadowGarbageCollector scheme as well as the ref counter
 LLVMRes.hDefined LLVMRes, which encapsulates the state of LLVM (Context, Modules, IRBuilder, PassManagers, JIT) context base information. This resource will be shared across multiple instances within the Compiler
 SammineJIT.hJIT Compiler based on Kaleidoscope
 TypeConverter.hDefines the TypeConverter, which holds the characistics of converting our AST types into LLVM IR types
  compiler
 Compiler.hDefine the Compiler staging
  lex
 Lexer.hHouses the lexer and the declaration of its method
 Token.hDefines the token structure (TokenType, TokStream, TokenMap)
  parser
 Parser.hDefines Parser, which consumes tokens and constructs the AST
  semantics
 GeneralSemanticsVisitor.hDefines GeneralSemanticsVisitor, an ASTVisitor that enforces general semantic rules for scoped definitions, detecting duplicates, and ensuring correct return usage in blocks
 ScopeGeneratorVisitor.hDeclares ScopeGeneratorVisitor, an ASTVisitor that builds and manages lexical scope by registration and reporting if there's been redefinitions
  typecheck
 BiTypeChecker.hDefines the BiTypeCheckerVisitor, consist of the flow for Bi-Directional Type checking, which allows for synthesizing types, validating consistency, and register types
 Types.hDefines the core Type system for Sammine
  util
 FileRAII.hA RAII-wrapper around C++ file type to use in the project for lexer and parser
 LexicalContext.hA simple scoping class, doesn't differentiate between different names, like variable name, func name and all that
 Utilities.hHolds classes and functionalities for dealing with Error handling, source locations caching & indexing
  src
  ast
 Ast.cppImplemention of AST Visitor, used for traversing the AST
 AstPrinterVisitor.cppImplementation for Ast Printer, using a Visitor pattern in order to traverse the AST for better debugging
  codegen
 CodegenVisitor.cppImplementation for CodegenVisitor, it converts the AST Representation into LLVM IR and it also uses a visitor pattern in order to traverse through the parsed AST to emit LLVM IR
 SammineJIT.cppThe Implementation for SammineJIT
 TypeConverter.cppImplementation for TypeConverter, converting AST Node types into LLVM IR Types
  lex
 Lexer.cppImplementation for scanning and streaming Tokens
  semantics
 GeneralSemanticsVisitor.cppImplementation for GeneralSemanticsVisitor
 ScopeGeneratorVisitor.cppImplements ScopeGeneratorVisitor, an ASTVisitor that traverses the AST to populate a lexical symbol table
  typecheck
 BiTypeChecker.cppImplementation of BiTypeCheckerVisitor, an ASTVisitor that traverses the AST to synthesize node types, perform bidirectional consistency checks, and register functions and variables
 Types.cppImplements the core Type system for Sammine
 Parser.cppImplementation for Parser class, it takes in the token stream and converts it into Parsing things suchs as programs, top-level (record, functions, global variables)
 sammine.cppThe main file to produce an executable that is the sammine compiler
  unit-tests
 test_lexer.cppThe unit-test file for all things related to a lexer
 test_parser.cppThe unit-test file for all things related to a parser