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 here (PDF), or a blog post with hands-on examples here. Suffice to say, if you are developing for embedded systems, it will probably interest you.
Common for all OSes
First, install the Java JRE. This is a compile-time only dependency, required to execute ANTLR.
Then depending on your OS:
A version of Visual Studio with support for F# .
Asn1.slnand build the
Install the Mono MDK.
./build.sh- and the compiler will be built.
Install the mono development tools. Under Debian Jessie for example (as of Sep/2014):
$ mono -V Mono JIT compiler version 3.2.8 (Debian 3.2.8+dfsg-7) Copyright (C) 2002-2014 Novell, Inc, Xamarin Inc and Contributors. TLS: __thread SIGSEGV: altstack Notifications: epoll Architecture: x86 Disabled: none Misc: softdebug LLVM: supported, not enabled. GC: sgen
fsharpccompiler inside your distro, or just checkout and compile the Open Source F# compiler...
git clone https://github.com/fsharp/fsharp && \ cd fsharp && \ ./configure && \ make && sudo make install
Run tests (if you want to):
cd Tests make
Note that in order to run the tests you need both GCC and GNAT. The tests will process hundreds of ASN.1 grammars, generate C and Ada source code, compile it, run it, and check the coverage results.
You can also read about how the compiler has been used in the TASTE project to target safety-critical systems - and maybe also check out the official TASTE project site.