bugfix/funccall_stdalone_weighting
major/dotting
feature/oop
bugfix/binops_typecheck
feature/do_while_loops
cleanup/container_not_context_container
vardec_varass_dependency
feature/resolver_proxies
bugfix/handle_param_count_arg_mismatch
cleanup/pushback_removal
cleanup/path_trail_deps
cleanup/variable_in_variable_ass
feature/container_update_1
feature/aliases
cleanup/context_drop_container
cleanup/depgen_root_removal
feature/modifiers
bugfix/dgen_expressionless_returns
cleanup/remove_dnodegeneratorbase
feature/comments
feature/operator_precedence
feature/reporting
bugfix/single_line_comment_bug
feature/logging_upgrade
feature/multi_module
feature/unused_vars_detection
feature/container_methods
feature/strat_resolve_collectors
feature/predicate_based_resolver
feature/poolmngr
hotfix/func_defs_in_dep_generator
feature/lexer_improvements
feature/structs
feature/behavec_preinline
bugfix/fix_multi_compile
master
feature/annotations
hotfix/simply_varexp_dnode_generation
hotfix/jcli_upgrade_fix
feature/class_static_init
feature/universal_coercion
feature/cloneability
hotfix/expect_exception_change
bugfix/recursive_return_statement_check
bugfix/require_return
bugfix/return_type
feature/cleanup1
feature/clean_lexer_interface
research/gmalloc
feature/type_enforcer_cast_instr_emit
feature/meta_programming
feature/direct_func_call
bugfix/return_position
bugfix/is_same_type_fallback
feature/lexer_interface
feature/parser_interface
arrays
pointers
bugfix/function_parameter_type_parse
casting
literal_encodings
extern_symbols
compiler_object
uniform_stdalone_varass
remove_typequeue
linearizer_cleanup
parsetypedev_fix
modules
loops
conditionals
vdva_func_param_merge
function_parameters_fix
path_dependency
function_dep
parser
compiler_levels
develop
constants_float
constants
typecheck
deps_refactor
weighting
typecheck_refactor_varexp_makeacyclic
lexer
codegen
testing_thing
typecheck_refactor_varexp
typecheck_refactor
typecheck_codegen_educedparseclass
typecheck_codegen
type_check_codegen_reducedparseclass_excep
typecheck_reliancetree
static_support
codegen.sync-conflict-20210606-150925-O3W7KWN
typecheck.sync-conflict-20210606-150925-O3W7KWN
struct_support
develop.sync-conflict-20210606-150924-O3W7KWN
symbol_table
entity_declaration_type_checking
parser.sync-conflict-20210405-185821-O3W7KWN
parser_exception_before
develop_before_lexer_parser_merge_parseName
if_statement_parsing
exception_except
master.sync-conflict-20210316-165421-O3W7KWN
expression_parsing
expression_parsing.sync-conflict-20210316-090018-O3W7KWN
v0.5.3
v0.5.2
v0.5.1
v0.5.0
v0.4.4
v0.4.3
v0.4.2
v0.4.1
v0.4.0
v0.3.0
v0.2.0
v0.1.0
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
pointers_coerce
pointer_cast_merge
parsetypeddeclaration_onlytype_parsecast_new
multimodule/changeset2
multimodule/changeset1
${ noResults }
2 Commits (d548a066a63add60c2d587a8ad42ef04cd685e5c)
Author | SHA1 | Message | Date |
---|---|---|---|
Tristan B. V. Kildaire | d548a066a6 |
Check
- Corrected import path for `compiler.lexer` -> `compiler.lexer.core` Parser - Corrected import path for `compiler.lexer` -> `compiler.lexer.core` TypeChecker - Corrected import path for `compiler.lexer` -> `compiler.lexer.core` Compiler - Moved configuration code outside of it - Renamed to `compiler.core` DGen - Check for any object files to link in, if so append them to the `cc` call Lexer - Moved from `compiler.lexer` to `compiler.lexer.core` Configuration - Overhauled configuration system Mapper - Added definition to `SymbolMappingTechnique` Command-line - Migrated to new configuration system - Migrated `SymbolMappingTechnique` to Mapper module - Added support for specifying object fils to link in using the `-ll` flag` Tests - Added `file_io.c` for testing `simple_extern.t` with `extern_test.sh` - Added `extern_test.sh` for testing `simple_extern.t` |
1 year ago |
Tristan B. V. Kildaire | d30ffb7684 |
Command-line
- All compilation stages now make use of the `Compiler` object Compiler - Added new exception type `CompilerException` complete with a sub-type enum, `CompilerError` - `getConfig()` will now throw a `CompilerException` when a key is not found, rather than return false (which didn't work under different template types anyways) - Implemented `hasConfig()` to check for the existence of a key in the configuration sub-system's key-value store - The `Compiler` object now stores the `Token[] tokens` generated from the call to `doLex()` - The `Compiler` object now stores the resulting container (`Module`) generated from the call to `doParse()` - Set default symbol mapping technique to the hashmapper technique - Implemented `dolex()` for performing tokenization, it will create and store a `Lexer` instance and the produced `Token[] tokens` into the `Compiler` object - Added `getTokens()` to fetch the tokens generated by `doLex()` - Implemented `doParse()`, `doTypeCheck()` and `doEmit()` in a similiar fashion to `doLex()` - Implemented `getMdoule()` to get the container (`Module`) generated by `doParse()` - Implemented `compile()` which calls `doLex()`, then `doParse()`, then `doTypeCheck()` and finally `doEmit()` CodeEmitter - The `CodeEmitter` constructor now takes in an instance of the chosen `SymbolMapper` DGen - Switched to the instance of the `mapper` inheited from the `CodeMapper` parent class for any `symbolMap` calls required - Use the inherited `TypeChecker` instance and not an instance of it provided by `Context` SymbolMapper - Reworked this class into an abstract class which must have its children implement a `symbolMap(Entity)` interface, this provides us pluggable mapping techniques HashMapper - Moved hashing symbol-mapping technique into `HashMapper` Lebanese - Created a kind-of `SymbolMapper` which, unlike `HashMapper`, produces human-redable-yet-valid C symbols (by replacing the `.`'s with `_`'s) TypeChecker - Removed code for setting now-nonexistent `SymbolMapper.tc` - Removed code for setting now-nonexistent `Context.tc` Context - Removed `static TypeChecker tc` field |
1 year ago |