-
Notifications
You must be signed in to change notification settings - Fork 58
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'EsaRepo/master' into scala-backend
- Loading branch information
Showing
16 changed files
with
485 additions
and
150 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
module RemoveUnusedRtlFunction | ||
|
||
|
||
let findFunctionNames (headerContents: string) : string list = | ||
let pattern = @"\b[a-zA-Z_][a-zA-Z0-9_]*\s+[a-zA-Z_][a-zA-Z0-9_]*\s*\([^\)]*\)\s*;" | ||
let regex = System.Text.RegularExpressions.Regex(pattern) | ||
let matches = regex.Matches(headerContents) | ||
|
||
[ for matchResult in matches do | ||
let declaration = matchResult.Value | ||
// Split the declaration at whitespace and take the second to last element, | ||
// which should be the function name (assuming no return type modifiers like pointers) | ||
let parts = declaration.Split([|' '; '\t'; '\n'; '\r'|], System.StringSplitOptions.RemoveEmptyEntries) | ||
if parts.Length > 1 then yield parts.[parts.Length - 2] ] | ||
|
||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,19 +1,16 @@ | ||
[![Build and Test Status of ASN1SCC on Circle CI](https://circleci.com/gh/maxime-esa/asn1scc.svg?&style=shield&circle-token=fcc32f415742887faa6ad69826b1cf25426df086)](https://circleci.com/gh/maxime-esa/asn1scc/tree/master) | ||
|
||
*For the impatient: if you already know what ASN.1 and ASN1SCC is, and | ||
just want to run the ASN1SCC compiler:* | ||
|
||
docker pull maxime-esa/asn1scc | ||
docker run -it maxime-esa/asn1scc | ||
|
||
*...and follow the instructions shown.* | ||
[![CircleCI](https://dl.circleci.com/status-badge/img/circleci/NWDXtobZpVSQ5ErUz9CgXB/3deZmhdEfAoLGYUJtiCX4c/tree/master.svg?style=svg&circle-token=69c83a7973425a3ab92fb7e2d7580bcb292a508f)](https://dl.circleci.com/status-badge/redirect/circleci/NWDXtobZpVSQ5ErUz9CgXB/3deZmhdEfAoLGYUJtiCX4c/tree/master) | ||
|
||
Executive summary | ||
================= | ||
|
||
This is the source code of the ASN1SCC compiler - an ASN.1 compiler that | ||
targets C and Ada, while placing specific emphasis on embedded systems. | ||
You can read a comprehensive paper about it | ||
targets **C**, **Ada** and **Scala** while placing specific emphasis on embedded systems. | ||
|
||
ASN1SCC is the ASN.1 compiler of the **European Space Agency** and is used is space missions to support binary encoding needs in satellite systems flight and ground software. | ||
|
||
What makes **ASN1SCC** unique is that in addition to supporting the standard ASN.1 uPER compact binary encoding rules, it offers the possibility to describe **custom binary encoding rules** with a simple textual notation, in order to communicate with equipments that come with legacy data formats. Check out [this page](https://taste.tuxfamily.org/wiki/index.php?title=Technical_topic:_ASN.1_-_An_introduction_to_ACN) to get a comprehensive overview of the feature, and [this page](https://taste.tuxfamily.org/wiki/index.php?title=Technical_topic:_Hints_to_model_complex_packet_encodings_with_ASN.1_and_ACN) for concrete examples as used in space systems. | ||
|
||
To know more you can also read this paper about ASN1SCC | ||
[here (PDF)](http://web1.see.asso.fr/erts2012/Site/0P2RUC89/7C-4.pdf), | ||
or a blog post with hands-on examples | ||
[here](https://www.thanassis.space/asn1.html). | ||
|
@@ -184,4 +181,19 @@ $ ./sample_test | |
|
||
Credits | ||
======= | ||
George Mamais ([email protected]), Thanassis Tsiodras ([email protected]) | ||
Project supervisor at the European Space Agency: Maxime Perrotin ([email protected]) | ||
|
||
Main project developer: George Mamais ([email protected]) | ||
|
||
Check https://lamdasoft.eu/asn1scc/ if you need commercial support | ||
|
||
Major contributor: Thanassis Tsiodras ([email protected]) | ||
|
||
The Scala backend was developed by: | ||
* Filip Schramka (Ateleris) | ||
* Ivo Nussbaumer (Ateleris) | ||
* Mario Bucev (EPFL) | ||
* Simon Felix (Ateleris) | ||
|
||
|
||
|
Oops, something went wrong.