Commit Graph

328 Commits

Author SHA1 Message Date
Mattia Mascarello 477fcaa1a0 alternate statement implemented, minor syntax fix 2023-04-19 09:15:58 +02:00
Mattia Mascarello 6cdef34073 Paccianizing 2023-04-18 22:55:48 +02:00
Stefano Sanfilippo f7fc90d98d Make the debug type printer compatible with opaque pointers.
This makes the code compatible with both LLVM 14 and 15.
2023-01-28 14:44:57 +01:00
Stefano Sanfilippo ef048aa324 Update the minimum version of CMake to 3.14, required for LLVM 14.
Updating the readme too, pointing to the latest LTS for testing.
2023-01-26 18:27:04 +01:00
Stefano Sanfilippo ffae8e9e77 Store variable definitions as AllocaInsts objects.
This way the LLVM type is explicitly available. Required for opaque pointers.
2023-01-26 18:20:04 +01:00
Stefano Sanfilippo 2f91c61296 Port to LLVM 14. 2023-01-04 19:24:51 +01:00
Stefano Sanfilippo 097a6fc511 Run clang-format on the codebase. 2023-01-04 19:24:33 +01:00
Stefano Sanfilippo 4b49bd28e7 Implement "ho visto" statement. 2020-02-23 10:52:39 +01:00
Stefano Sanfilippo 7338102d46 Mark abort builtin as noreturn. 2020-02-23 10:50:57 +01:00
Stefano Sanfilippo 7cc72828a0 Extract IRGenerator::evalBooleanCondition.
This unifies condition evaluation between loops and branches.
2020-02-23 10:25:14 +01:00
Stefano Sanfilippo 5bd3ac2be5 Implement "avvertite don ulrico" statement. 2020-02-23 09:54:44 +01:00
Stefano Sanfilippo 6c86720a1d Allow both "maggiore o uguale" and "maggiore uguale" for >=.
Fixes #49.
2020-02-23 09:06:34 +01:00
Stefano Sanfilippo 39c9e3f08c Choose the LLVM version with a CMake option. 2019-12-10 10:54:03 +01:00
Stefano Sanfilippo 439ef31f94 Support LLVM 7, 8 and 9. Bump default required version to 7.
Fixes #48.
2019-12-09 18:46:43 +01:00
Stefano Sanfilippo 1bdb2d64c9 Build system fixes. 2019-12-09 18:44:36 +01:00
Stefano Sanfilippo 4be7463cb3 Replace deprecated TypeBuilder with FunctionType::get.
The TypeBuilder API has been removed in https://reviews.llvm.org/D56573, and breaks compilation in LLVM 9+.
2019-12-09 18:04:08 +01:00
Stefano Sanfilippo 21f27ec261 Enable C++11 and strict checks for all code, msvc compatibility. 2019-07-07 10:07:28 +02:00
Stefano Sanfilippo 25110521d0 Check LLVM version, rename RAGEL to RAGEL_EXECUTABLE. 2019-07-07 09:53:59 +02:00
Stefano Sanfilippo 08368b178c Update clang-format config, run it. 2019-07-07 09:53:59 +02:00
Stefano Sanfilippo 7a72294426 Build a tarball with "make package". 2019-06-25 10:44:10 +02:00
Stefano Sanfilippo e48cb899f4 Merge branch 'master' of github.com:esseks/monicelli 2019-06-25 10:36:14 +02:00
Stefano Sanfilippo c4c70182a1 Improve build scripts, add MONICELLI_ARCH cache variable. 2019-06-25 10:35:02 +02:00
Stefano Sanfilippo 6c29cadd86
Bump LLVM version to 6.0 in the README. 2019-06-24 11:44:21 +02:00
Stefano Sanfilippo 68dee1250d Port the build scripts to CMake 3.5, refactor them.
* Use the official LLVMConfig rather than our FindLLVM.
* Add target rule for Ragel.
* Remove useless dependencies by only compiling for the native target.
* Use target rules.
2019-06-24 11:02:46 +02:00
Stefano Sanfilippo 3b5a9be6b9 Emit position independent code by default, to enable support for shared libraries and PIE.
PIE is now default on Ubuntu LTS. PIC can be disabled with --no-pic.
2018-12-25 14:12:35 +01:00
Stefano Sanfilippo ab596da379 Port Monicelli to LLVM 6.0 2018-09-16 14:24:27 +02:00
Stefano Sanfilippo 7f2a9a34a8 Push Monicelli 2.0 "Cofandina" 2018-09-16 14:24:27 +02:00
Stefano Sanfilippo 8aa5c1a575 Merge branch 'location' 2015-03-27 12:02:55 +01:00
Stefano Sanfilippo 554f80ac5d Keeping track of locations in parser. 2015-03-26 15:19:07 +01:00
Stefano Sanfilippo 4c9c5dc13b Pass current node to reportError function.
This way, the location is included in the error message.
2015-03-26 15:18:44 +01:00
Stefano Sanfilippo 7c5b760a94 Add location traits to AST nodes.
This way, we keep trace of the exact source location where a
statement or symbol was defined and we are able to emit
more precise error messages in LLVM mode.
2015-03-26 14:43:42 +01:00
Stefano Sanfilippo 5c05d96b39 Merge branch 'master' into location 2015-03-25 01:36:26 +01:00
Stefano Sanfilippo 3dc5dc604a Ensure that a proper bb is created when "else" is omitted in a branch. 2015-03-25 01:32:49 +01:00
Stefano Sanfilippo 69f54847b4 Fixing typo in HEXDIGIT regex. 2015-03-25 01:32:38 +01:00
Stefano Sanfilippo d7fe87ee6e Add missing header in BitcodeEmitter.cpp 2015-03-25 01:26:15 +01:00
Stefano Sanfilippo aa927e698b Add Netbeans files to gitignore. 2015-03-25 01:26:01 +01:00
Stefano Sanfilippo 425dc1d9f4 Fixing typo in HEXDIGIT regex. 2015-03-12 18:59:45 +01:00
Stefano Sanfilippo 1ba0e79c01 Making output operator for Type and Operator part of the iface. 2015-03-12 17:52:27 +01:00
Stefano Sanfilippo 09c69f163f Adding template using decl to compile features check. 2015-03-12 15:25:15 +01:00
Stefano Sanfilippo f2ee32ca80 Remove unused headers. 2015-03-11 00:58:31 +01:00
Stefano Sanfilippo 6e832cf2f4 Use type shorthand macros in bitcode emitter. 2015-03-11 00:57:14 +01:00
Stefano Sanfilippo a191342dec Adding fibonacci example. 2015-03-11 00:52:53 +01:00
Stefano Sanfilippo 16d0e877bf Fix YAML-cpp minimum version required. 2015-03-11 00:50:08 +01:00
Stefano Sanfilippo a0a94d13eb Additional checks on input files. 2015-03-10 21:21:54 +01:00
Stefano Sanfilippo f83f3759d3 Qualify global regexes as static const in main. 2015-03-10 21:09:22 +01:00
Stefano Sanfilippo ca8a86d217 Updating list of dependencies in readme. 2015-03-10 21:00:03 +01:00
Stefano Sanfilippo 47302ea0de Slightly improved error reporting for << and >>. 2015-03-10 20:57:25 +01:00
Stefano Sanfilippo d10d8cf3fd Fix compile time errors in hello world. 2015-03-10 20:53:51 +01:00
Stefano Sanfilippo 69c4a80c81 Fix README for C++ transpiler. 2015-03-10 19:51:45 +01:00
Stefano Sanfilippo eb448f6ae5 Clearer messages on command line. 2015-03-10 19:48:53 +01:00