Mercurial > projects > dil
annotate wiki/main.wiki @ 493:d13502b6fa5f
Added code to the Parser and edited main.wiki.
author | Aziz K?ksal <aziz.koeksal@gmail.com> |
---|---|
date | Thu, 06 Dec 2007 22:59:38 +0100 |
parents | 1be8eaf4b5b0 |
children | c89ffd930727 |
rev | line source |
---|---|
493
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
1 Note: the Subversion repository is out of date. The code was migrated to [http://hg.sharesource.org/dil/ Mercurial]. |
316 | 2 =Purpose= |
493
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
3 dil is a hand-crafted compiler implementation for the D programming language written in D 1.0. The lexer and the parser are fully implemented. Semantic analysis is being worked on. The backend will most probably be gcc or [http://llvm.org LLVM]. |
316 | 4 |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
5 What dil can do at the moment: |
378 | 6 * dil is fully internationalized and can output compiler messages in English, German, Turkish and Finnish. You can determine which language to use with a setting in config.d. |
332 | 7 * Generate XML or HTML documents. You can choose to generate tags for tokens only or you can also have the whole parse tree unparsed. The whitespace of the original source file is preserved. You can view the HTML documents in any browser you like. The XML documents can only be viewed in W3C-standards compatible browsers(`*`) in combination with an XML formatting CSS document. dil provides two ordinary CSS documents (for XML/HTML) which can be customized to one's heart's content. (`*`Note: Internet Explorer is the only browser that spectacularly fails at this job.) |
493
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
8 * Generate module dependency graphs in the dot format. Demo [http://dil.googlecode.com/files/main.dot dot file]: rendered in [http://dil.googlecode.com/files/main.svg SVG], [http://dil.googlecode.com/files/main.png PNG] (1.3MB) or [http://dil.googlecode.com/files/main.gif GIF]. Cyclic edges and nodes are highlighted in red. (Note: the images are old. [http://dsource.org/projects/tango Tango] is used instead of Phobos now.) |
378 | 9 * Generate simple code statistics (lines of code, number of whitespace characters etc.) When dil has advanced enough [http://www.aivosto.com/project/help/pm-oo-ck.html OO-metrics] will be supported. |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
10 |
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
11 * dil can parse D 2.0 additions: |
385
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
12 * Delimited and token [http://www.digitalmars.com/d/lex.html#StringLiteral string literals]. |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
13 * [http://www.digitalmars.com/d/statement.html#ForeachRangeStatement ForeachRangeStatement]. |
381 | 14 * Optional [http://www.digitalmars.com/d/expression.html#IsExpression TemplateParameterList in IsExpression]. |
493
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
15 * const and invariant in !IsExpressions. |
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
16 * [http://www.digitalmars.com/d/template.html#TemplateThisParameter TemplateThisParameter]. |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
17 * Cast expressions: cast(const) and cast(invariant). |
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
18 * Type constructors: const(Type) and invariant(Type). |
493
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
19 * const and invariant attributes after the parameter list of a function (C++ style.) |
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
20 * typeof(return). |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
21 * Traits expressions: `__`traits(Identifier) and `__`traits(Identifier, !TemplateArguments). |
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
22 * const/invariant/final/scope/static as storage classes in parameter lists (e.g. void func(final scope Foo f);). |
493
d13502b6fa5f
Added code to the Parser and edited main.wiki.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
421
diff
changeset
|
23 * invariant as a storage class for declarations (e.g. invariant Foo f;). |
421
1be8eaf4b5b0
Made some changes. Added an item to the D2.0 list.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
385
diff
changeset
|
24 * The identifier `__EOF__` is interpreted as the end of file. |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
25 |
316 | 26 Features you will or might see in dil: |
27 * Documentation generation ala doxygen (keeping ddoc in mind.) | |
28 * Refactoring (renaming symbols, modules; changing the type of a symbol etc.) | |
29 * Coding rules enforcement. | |
30 * Code search. | |
31 * Code analysis (lint-like). | |
32 * Code formatting. | |
33 * Translate D code to other languages. | |
34 * Port D 1.0 code to D 2.0. | |
35 | |
317
f62f4b614ebd
- Added list of features dil has atm. Brought list of D2.0 additions under the first list.
aziz
parents:
316
diff
changeset
|
36 *Meaning:* |
316 | 37 |
38 The word dil comes from the Turkish language and means among other things a) tongue or b) language. It is a very fitting name for this project because of its meaning and because it starts with the letter d and for the reason that the project owner has Turkish origins. | |
39 | |
40 ==Download== | |
385
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
41 There are no binaries to download yet. |
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
42 If you want to get the sources you can either check it out via SVN (`svn co http://dil.googlecode.com/svn/trunk/ dil`) or you can use the fetch command of [http://dsource.org/projects/dsss DSSS] (dsss net fetch dil). |
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
43 |
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
44 Note: For practical and technical reasons I've decided to change the source code management system from Subversion (SVN) to Mercurial (hg). |
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
45 I managed converting the old svn repository to an hg repository with the help of two fine persons at irc.freenode.net/#mercurial. |
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
46 Since the Google Code services don't support Mercurial repositories yet (please see [http://code.google.com/p/support/issues/detail?id=415 bug report]), I have decided to register at [http://sharesource.org sharesource.org] and have my hg repository hosted there for the time being. From now on development will continue in the [http://hg.sharesource.org/dil/ new Mercurial repository]. |
c45233dc63db
Updated lists and added notice about new hg repository.
Aziz K?ksal <aziz.koeksal@gmail.com>
parents:
381
diff
changeset
|
47 However, I'll try to find a way to synchronize it with the svn repository, so that tools like DSSS can still fetch up to date versions. |