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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
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
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
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
ffb92a52ff44 - Added two items to list of features.
aziz
parents: 337
diff changeset
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
fa8ce2c50a11 - HTML documents can be generated, too now.
aziz
parents: 317
diff changeset
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
ffb92a52ff44 - Added two items to list of features.
aziz
parents: 337
diff changeset
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
7b5c6c2c6a79 - Updated AUTHORS file.
aziz
parents: 378
diff changeset
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
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
26 Features you will or might see in dil:
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
27 * Documentation generation ala doxygen (keeping ddoc in mind.)
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
28 * Refactoring (renaming symbols, modules; changing the type of a symbol etc.)
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
29 * Coding rules enforcement.
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
30 * Code search.
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
31 * Code analysis (lint-like).
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
32 * Code formatting.
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
33 * Translate D code to other languages.
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
34 * Port D 1.0 code to D 2.0.
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
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
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
37
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
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.
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
39
c23a24cc2021 - Created wiki directory and added main.wiki.
aziz
parents:
diff changeset
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.