[root]/testsuite/openmodelica/omcc
Author | Changes | Lines of Code | Lines per Change |
---|---|---|---|
Totals | 320 (100.0%) | 60234 (100.0%) | 188.2 |
arun3688 | 96 (30.0%) | 24717 (41.0%) | 257.4 |
adrpo | 17 (5.3%) | 15380 (25.5%) | 904.7 |
sjoelund.se | 165 (51.6%) | 13454 (22.3%) | 81.5 |
hudson | 37 (11.6%) | 6544 (10.9%) | 176.8 |
alash325 | 4 (1.3%) | 138 (0.2%) | 34.5 |
hkiel | 1 (0.3%) | 1 (0.0%) | 1.0 |
Removed the local copy Absyn.mo, and also fixed the grammar to the most recent Absyn.mo and linked the SCRIPT.mos to load Absyn.mo from Compiler and not locally
21 lines of code changed in 4 files:
grammar fix to restore class name in AST in extend clause
8 lines of code changed in 1 file:
fix to parse local declaration in MetaModelica
1 lines of code changed in 1 file:
fixes to the class_extends and optimica rules
15 lines of code changed in 1 file:
new grammar rules added to the parser and some fixes
42 lines of code changed in 1 file:
new tokens added initialequation and initialalgorithm to be identifed as single tokens and not as INITIAL EQUATION
5 lines of code changed in 1 file:
[Janitor mode] Fix whitespace
240 lines of code changed in 7 files:
Bump OMCC tests
1 lines of code changed in 1 file:
Remove some useless variables
6 lines of code changed in 2 files:
Remove the AstStack from the environment
58 lines of code changed in 4 files:
Do inlining of arrayGet by default (halves the cost).
- OMCC: Use unsafe arrayGet in the parser (eliminates the cost of arrayGet almost completely)
21 lines of code changed in 1 file:
Reduced the need to call the token merging so often (it mostly did elt::stack=stack; stack=elt::stack;, and we statically knew which calls did this)
10 lines of code changed in 2 files:
Removed debug flag from environment
97 lines of code changed in 1 file:
Remove useless token to string
1 lines of code changed in 2 files:
Create the file info for AST only on demand
49 lines of code changed in 4 files:
Use match, not matchcontinue
2 lines of code changed in 1 file:
- Added new annotation: `annotation(__OpenModelica_FileInfo=("parserModelica.y",718));` on something with file information (e.g. equation,algorithm,class) now changes the file and line
- Changed the OMCC grammar syntax. You no longer define the types returned by each rule - everything is an AstItem (a uniontype containing all types).
- The above changes allow us to use only 1 stack for AstItem (previously, we had to allocate memory for all 80+ types and push them for each reduction)
- The grammar was updated (and tested on the given testsuite)
- The grammar was also fixed. Some rules previously used $1 and $2 even though $1 and $3 were to be used. It worked anyway because $2 and $3 were in different stacks...
- Halved the time Machines.mo takes to parse
1493 lines of code changed in 9 files:
Statically parse the values of yyr2 in some places: knowing the number of tokens to reduce will be handy later on
16 lines of code changed in 1 file:
Trim trailing whitespace
492 lines of code changed in 8 files:
grammar fix to handle empty if,elseif and for statements
20 lines of code changed in 1 file:
Use newly added MetaModelica.Dangerous.listReverseInPlace to save a little more time in the OMCC lexer
2 lines of code changed in 1 file:
OMCC Fixes
- Fix the dummy tokens when trying to merge tokens
- Add the filename to error-messages again
- Moved omcc_test to a collection of Modelica files to parse on github
36 lines of code changed in 4 files:
Fix yytname parsing
2 lines of code changed in 1 file:
- Inline some more MetaModelica functions
- OMCC: Combine the Absyn.INFO lines/columns into the OMCCTypes.TOKEN directly (1 fewer allocation)
32 lines of code changed in 5 files:
Implement the lexer states stack as an array<Integer> instead of list<Integer>
37 lines of code changed in 3 files:
- Add MetaModelica.Dangerous.stringGetNoBoundsChecking
- Change LexerCode.action to return a token with index=-1 instead of NONE()
13 lines of code changed in 4 files:
- Change start state from Integer to list<Integer> as an optimization (!). This variable was always used to re-initialize the current states (a list), by creating a list from the start state (costs 1 allocation). By always keeping it as a list, you do 0 allocations (not even when changing start state: all those assignments are constant values which are optimized).
- Added new MetaModelica function, MetaModelica.Dangerous.arrayGetNoBoundsChecking which is also inlined by macro (saves a surprising amount of run-time performance)
34 lines of code changed in 3 files:
Change buffer to Integer from list<Integer>. Change the way info is generated (track first/last byte line/column in the token instead of only the first and re-read the token contents to figure out the line/column of the other end).
87 lines of code changed in 3 files:
Replace bkBuffer list<Integer> with Integer (we only need to know the number of bytes to backtrack)
18 lines of code changed in 1 file:
Refactoring (remove match when not used)
73 lines of code changed in 1 file:
Removed the need to convert the read file from a String to list<1-length String> to list<Integer> - we now read each byte as it is with an additional stack for returned characters in the backtracking
41 lines of code changed in 4 files:
Handle multiple bison versions (YY_NULL|0)
3 lines of code changed in 3 files:
Remove env from the lexer - pass everything without building a new record all the time
77 lines of code changed in 5 files:
Code generation fixes for windows and linux
8 lines of code changed in 3 files:
OMCC: Remove list<Integer> value from TOKEN
33 lines of code changed in 6 files:
Added substring as a MetaModelica builtin (it uses strlen as external "C"; this is incredibly slow compared to MMC_STRLEN)
- Updated OMCC to pass around the entire file contents and token start/end positions (to replace passing around lists of integers that need to be converted)
133 lines of code changed in 9 files:
Don't construct the environment over and over again - pass only required variables
58 lines of code changed in 3 files:
Return failure codes
2 lines of code changed in 1 file:
Avoid slow lookup of names through lists (like in the hand-coded parser)
5 lines of code changed in 2 files:
Call getInfo on demand, like the old hand-tuned code
2 lines of code changed in 2 files:
(33 more)