Skip to content

Commit

Permalink
added some d projects
Browse files Browse the repository at this point in the history
  • Loading branch information
gizmomogwai committed Mar 2, 2011
1 parent c60f717 commit f2a2fe6
Show file tree
Hide file tree
Showing 7 changed files with 55 additions and 1 deletion.
2 changes: 2 additions & 0 deletions content/projects/digitalmarsd.haml
@@ -0,0 +1,2 @@
%p
C++0x looks to scary ... so choose your weapon. I tried digitalmars d, because it is a rich language with lots of "cool" features.
3 changes: 3 additions & 0 deletions content/projects/digitalmarsd.yaml
@@ -0,0 +1,3 @@
---
title: Digitalmars D
parent: /projects/
14 changes: 14 additions & 0 deletions content/projects/digitalmarsd/combinatorparser.haml
@@ -0,0 +1,14 @@
%div.basic#accordion
%a.header Story
%div.chapter
%p
While reading the scala book by Martin Odersky I stumbled upon its brilliant article on combinator parsers. This project tries to give the building blocks for a similar library in d.
%a.header Implementation
%div.chapter
%p
To keep reuse simple the project consists of only one module (pc.parser) in one file pc/parser.d. In addition to a object oriented api I tried to add some operators to shorten the construction of parsers as much as possible.
%p
Please see the integrated unittests for examples.
%a.header Sources
%div.chapter
The sources are located in my private assembla repository. Feel free to contact me if you want to try them out.
3 changes: 3 additions & 0 deletions content/projects/digitalmarsd/combinatorparser.yaml
@@ -0,0 +1,3 @@
---
title: Combinator Parser Lib
parent: /projects/digitalmarsd/
29 changes: 29 additions & 0 deletions content/projects/digitalmarsd/protobuf_for_d.haml
@@ -0,0 +1,29 @@
%div.basic#accordion
%a.header Story
%div.chapter
%p
I did not get protobuf ... So I thought:
%ul
%li Learn a little about the protobuf internals.
%li See how to generate source with d.
%li Use the parser combinator library to implement a not so minimal parser example.
%li And create a useful library to interact with the rest of the world.
All at the same time.
%a.header Implementation
%div.chapter
%p
The project consists of several parts:
%ul
%li some small helper classes that are kind of a runtime for the generated sources.
%li some tests written in java to generate protobuf files which are used to check the results from the generator.
%li the compiler itself (it is implemented by first writing a parser from scratch (I know ... dont do this at home and use the protobuf parser)).
%li integration tests, that use the java-references to check if everything is compatible.
%p
Please check the d examples in compiler/tests (e.g. the canonical addressbook tests for the generated api).
%a.header Restrictions
%div.chapter
%p
Neither the service part nor the extension part is currently implemented.
%a.header Sources
%div.chapter
The sources are located in my private assembla repository. Feel free to contact me if you want to try them out.
3 changes: 3 additions & 0 deletions content/projects/digitalmarsd/protobuf_for_d.yaml
@@ -0,0 +1,3 @@
---
title: Protobuf
parent: /projects/digitalmarsd/
2 changes: 1 addition & 1 deletion layouts/default.haml
Expand Up @@ -5,7 +5,7 @@
/ %script{:type=>"text/javascript", :src=>"/jquery.easing-1.3.js"}
/ %script{:type=>"text/javascript", :src=>"/jquery.accordion.js"}
%link{:rel=>"stylesheet", :type=>"text/css", :href=>"/assets/styles/style.css"}
/ = "<!--<script type=\"text/javascript\">$().ready(function(){$('#accordion').accordion({alwaysOpen: false,autoheight: false, header:'a.header'});});</script>-->"
/ = "<script type=\"text/javascript\">$().ready(function(){$('#accordion').accordion({alwaysOpen: false,autoheight: false, header:'a.header'});});</script>"
%body
%div#all
%div#nav<
Expand Down

0 comments on commit f2a2fe6

Please sign in to comment.