Commit Graph

183 Commits

Author SHA1 Message Date
Stefano Sanfilippo c740954528 Updating bitcode emitter stub according to new Emitter iface. 2015-03-05 17:34:20 +01:00
Stefano Sanfilippo a4b484b2b9 Merge branch 'master' into llvm 2015-03-05 17:27:50 +01:00
Stefano Sanfilippo d7494702af Simplify the Expression hierarchy by moving the operator on the binary father.
As a consequence, the Emitter interface is greatly simplified.
2015-03-05 17:25:02 +01:00
Stefano Sanfilippo c55e25e2a2 Stub bitcode emitter. 2015-03-05 14:26:24 +01:00
Stefano Sanfilippo 82b63189f4 Adding new features to features.cpp compiler checks. 2015-03-05 14:24:27 +01:00
Stefano Sanfilippo 25153e8a85 Properly indent generated C++ code. 2015-03-05 13:55:34 +01:00
Stefano Sanfilippo b0a01d2fb7 Decouple AST nodes from representation.
1. adding getters to all node properties.
2. extracting an Emitter interface.
3. moving all C++ codegen features to a CppEmitter.

All list template specializations typedefs have been removed for
increased readability.

A dependency on Boost is introduced for boost::optional,
which is required in the AST getters API.
2015-03-05 01:16:40 +01:00
Stefano Sanfilippo 0fb3ea5dd6 Moving pointer stuff to separater header. 2015-03-05 01:09:04 +01:00
Stefano Sanfilippo a302ea3911 Meta comments are no more printed to screen during compilation. 2015-03-05 00:59:33 +01:00
Stefano Sanfilippo eba0efb878 Passing a pointer to Scanner instead of reference.
This way, we can handle std::cin easier.
2015-03-05 00:58:30 +01:00
Stefano Sanfilippo 0cf45c87b4 Merge pull request #22 from calamarim/patch-1
Use "prematurata" instead of "brematurata" in examples.
2015-02-11 01:25:50 +01:00
Marco A. Calamari - Progetto Winston Smith e79316f5fa Update factorial.mcc
Because "Brematurata" and Supercazzora" was in the screenplay while "Prematurata" and "Supercazzola" in the common film understanding, we can consider the second being a new version of the language; let's say Monicelli IV and Monicelli 77.
Is widely known that well conformed programs must not use mixed features, and stick to the latest ones if possible.
This, in short, means replacing all existing instances of tokens also in all others examples.
2015-02-05 14:31:36 +01:00
Stefano Sanfilippo f229f3fbd4 Remove duplicate line in README 2015-01-16 12:35:15 +01:00
Stefano Sanfilippo a9da15c4c3 Reserving more keywords for future usage. 2015-01-15 22:02:57 +01:00
Stefano Sanfilippo d179b4eb21 List reserved keywords in README. 2014-12-16 16:53:27 +01:00
Stefano Sanfilippo fabb600d19 Updating README for CMake. 2014-12-14 14:26:32 +01:00
Stefano Sanfilippo 715b0fe840 Compiler features discovery and Bison version check. 2014-12-10 23:03:02 +01:00
Stefano Sanfilippo 815dcf9df2 Adding QTCreator *.user to ignore list. 2014-12-10 23:02:24 +01:00
Stefano Sanfilippo 6e63e248ce Merge branch 'master' of github.com:esseks/monicelli 2014-12-10 20:39:30 +01:00
Stefano Sanfilippo 9c0a2573c3 Adding simple module dependency analysis.
Addresses #14
2014-12-10 20:38:32 +01:00
Stefano Sanfilippo eb072a063d Do not wrap simple expressions in braces. 2014-12-10 19:50:51 +01:00
Stefano Sanfilippo b721cd666b Merge pull request #11 from slattarini/factorial
New example: calculate factorial of a given integer, as double
2014-12-05 19:58:32 +01:00
Stefano Sanfilippo d8a895773a Merge branch 'master' into cmake 2014-12-05 01:50:07 +01:00
Stefano Sanfilippo 7d615b91a5 Adding missing header for assert(), not in ns std::.
Closes #13
2014-12-05 01:28:08 +01:00
Stefano Lattarini 080773ed0a New example: calculate factorial of a given integer, as double
Signed-off-by: Stefano Lattarini <stefano.lattarini@gmail.com>
2014-12-05 00:33:02 +01:00
Stefano Sanfilippo d0e1af34b2 Merge branch 'master' into cmake
Conflicts:
	CMakeLists.txt
2014-12-04 22:18:01 +01:00
Stefano Sanfilippo 2d2fd93e2c Add parser-scanner dependency to CMake rules. 2014-12-04 21:50:15 +01:00
Stefano Sanfilippo 1b3ecac847 Merge pull request #10 from nsanitate/patch-1
"way" instead of "wat"
2014-12-04 21:46:00 +01:00
Nicola Sanitate ea2c46fcba Readme.md typo fix 2014-12-04 11:56:57 +01:00
Stefano Sanfilippo 07bdbbe55e Switch to CMake. 2014-12-02 17:55:48 +01:00
Stefano Sanfilippo f148814087 g++ 4.6.x compatibility 2014-12-02 17:28:42 +01:00
Stefano Sanfilippo e5fd0ed6bc Honour CXX environment variable. 2014-12-02 17:28:21 +01:00
Stefano Sanfilippo c4dd6e3c6b Removing extra \n when no functions are defined. 2014-12-02 16:28:01 +01:00
Stefano Sanfilippo 2f66c31729 Getting rid of explicit stacks with more left-recursive rules.
As a result, the grammar should be more readable.
2014-12-02 16:22:03 +01:00
Stefano Sanfilippo e984b5d0ea Uniform token naming convention. 2014-12-02 14:15:25 +01:00
Stefano Sanfilippo 5160c82adb Add a note to Specification.txt to remark that it's not up-to-date. 2014-12-02 13:15:40 +01:00
Stefano Sanfilippo 8e80aa4969 Show the variable name when asking the user for some input. 2014-12-02 01:36:50 +01:00
Stefano Sanfilippo 761ce64ca2 More meaningful example for bituma comment. 2014-12-01 10:20:23 +01:00
Stefano Sanfilippo b254b63faf Accented letters vs. backtick + smal fix to README. 2014-12-01 10:17:14 +01:00
Stefano Sanfilippo 87ca7614e4 Crediting the people who contributed to the initial specs. 2014-12-01 10:16:56 +01:00
Stefano Sanfilippo ffb2c6f975 Make in() static since it's not supposed to be used outside the lexer. 2014-12-01 09:55:06 +01:00
Stefano Sanfilippo d031031e4e Void functions might not return a value. 2014-12-01 00:33:57 +01:00
Stefano Sanfilippo 10034f38df Accept "supercazzora" as alternate spelling of "supercazzola".
As mentioned in #2
2014-12-01 00:29:49 +01:00
Alessandro Gatti e9be8b4419 Don't assume Italian accented characters are available. 2014-11-30 23:45:07 +01:00
Alessandro Pellegrini 8913c12a7f Hello World
There cannot be any programming language without a Hello World.
2014-11-30 23:39:57 +01:00
Stefano Sanfilippo 36de368b19 Enclose output expression in (). 2014-11-30 13:40:08 +01:00
Stefano Sanfilippo 2bc017d0bb Allow floating point literals with exponent and without decimal part. 2014-11-30 13:19:19 +01:00
Stefano Sanfilippo a6954b6ff7 Documenting function declaration and invocation in README. 2014-11-30 13:17:30 +01:00
Stefano Sanfilippo 0a49ccfeca Emitting prototypes for all declared functions. 2014-11-30 13:05:59 +01:00
Stefano Sanfilippo 76a4e3d7f2 Adding support for functions. 2014-11-30 13:03:45 +01:00