Volta
If you want to learn about the compiler read the overview first. This is the project page for the Volt Programming Language compiler Volta. It is named after Alessandro Volta, tho the compiler got its named after the language was named Volt. Some various documentation is listed below.
- Overview of the compilation process
- Parsing
- Volt Semantics
- Language Passes
- Post Parsing Passes
- Semantic Passes
- Lowering Passes
- Backend
- Interfaces
- Passes
- LLVM Backend
- IR Nodes
- IR Type Nodes
- IR Context Classes
- IR TopLevel Nodes
- IR Statement Nodes
- IR Expression Nodes
- IR Declaration Nodes
- Lookup Semantics
- Implicit Type Conversion
- The Volt Programming Language
- Errors
- Symbol Mangling
- Syntax Snippets
Here is a bunch of modules from the compiler:
- main
- volt.arg
- volta.settings
- volt.errors
- volta.license
- volt.interfaces
- volt.driver
- volt.util.path
- volt.util.perf
- volta.interfaces
- volta.ir.location
- volta.ir
- volt.llvm.intrinsicVersion
- volt.util.cmdgroup
- volt.exceptions
- volta.parser.parser
- volt.semantic.languagepass
- volt.llvm.driver
- volt.llvm.backend
- volt.lowerer.image
- volt.util.mangledecoder
- volta.visitor.visitor
- volt.visitor.prettyprinter
- volt.visitor.debugprinter
- volt.visitor.jsonprinter
- volta.postparse.missing
- volta.ir.printer
- volta.errors
- volta.ir.token
- volta.ir.base
- volta.ir.type
- volta.ir.context
- volta.ir.toplevel
- volta.ir.statement
- volta.ir.expression
- volta.ir.declaration
- volta.ir.templates
- volta.token.lexer
- volta.token.source
- volta.parser.base
- volta.parser.errors
- volta.parser.toplevel
- volta.parser.statements
- volta.parser.declaration
- volta.util.copy
- volta.util.util
- volt.visitor.nodereplace
- volt.lowerer.array
- volt.semantic.util
- volt.semantic.typer
- volt.semantic.mangle
- volt.semantic.lookup
- volt.semantic.nested
- volt.semantic.classify
- volt.semantic.classresolver
- volt.semantic.evaluate
- volt.semantic.overload
- volta.postparse.pass
- volta.util.dup
- volt.util.worktracker
- volt.lowerer.llvmlowerer
- volt.lowerer.newreplacer
- volt.lowerer.manglewriter
- volt.lowerer.typeidreplacer
- volt.semantic.cfg
- volt.semantic.folder
- volt.semantic.lifter
- volt.semantic.extyper
- volt.semantic.typeinfo
- volt.semantic.irverifier
- volta.postparse.gatherer
- volta.util.string
- volta.visitor.scopemanager
- volta.util.moduleFromScope
- volta.util.errormessages
- lib.llvm.core
- lib.llvm.analysis
- lib.llvm.bitreader
- lib.llvm.bitwriter
- lib.llvm.targetmachine
- lib.llvm.executionengine
- lib.llvm.c.Target
- lib.llvm.c.Linker
- lib.llvm.c.Initialization
- volt.llvm.host
- volt.llvm.state
- volt.llvm.toplevel
- volta.util.sinks
- volt.lowerer.alloc
- volt.lowerer.callBuilder
- volt.semantic.context
- volt.semantic.implicit
- volt.ir.lifter
- volta.util.stack
- volta.token.writer
- volta.token.error
- volta.ir.tokenstream
- volta.visitor.setExpLocationVisitor
- volt.llvm.type
- lib.llvm.c.Analysis
- volt.llvm.constant
- volt.llvm.expression
- volt.llvm.interfaces
- lib.llvm.c.TargetMachine
- volta.visitor
- volta.postparse.condremoval
- volta.postparse.attribremoval
- volta.postparse.scopereplacer
- volta.postparse.importresolver
- lib.llvm.c.Core
- lib.llvm.c.BitWriter
- volta.parser.expression
- volt.semantic.templatelifter
- volta.parser.templates
- lib.llvm.c.BitReader
- lib.llvm.c.ExecutionEngine
- volt.llvm.abi.base
- volt.llvm.common
- volta.parser.intir
- volt.llvm.abi.sysvamd64
- volt.llvm.abi.winamd64
- volt.llvm.debugInfo
- lib.llvm.c.DebugInfo
- volt.llvm.dwarf