dmd Lexer and Parser in D
Zach Tollen
reachzachatgooglesmailservice at dot.com
Sat Feb 4 20:43:21 PST 2012
On 2/4/12 1:24 PM, Timon Gehr wrote:
> On 02/04/2012 06:39 PM, Zach Tollen wrote:
>> If anybody can refer me to any examples and demonstrations of this type
>> of code-editing, please do. As someone new to programming I'm really
>> wondering why, if the program itself is understood by the computer as a
>> tree, why do I have to edit a text file instead of a tree?
>>
>> Zach
>
> You are: The source file can be seen as the representation of a tree
> structure, and if you read the source you group the characters in a
> tree-like way in order to understand what it is saying. Anyway, this is
> true for any language. Your post could be parsed into a tree structure too.
I know what you mean, but what I mean is that it would be cool if my
text editor knew that when I started a line with 'writeln(' that I had
no intention of finishing the line without inserting a corresponding
');'. Instead, if I forget to add the ending parenthesis, the compiler
thinks I meant never to end the function call and it gives a parse error
when it gets to something it can't read according to its expectations.
It gets a little worse when the structure in question gets larger or
more complicated.
What I wish would happen is that I simply told the editor directly "I
want to insert a complete statement here", and then it inserts the
statement into it's tree, and I can't get rid of it without giving a
specific command to do so. So while I understand that the text file
*represents* a syntax tree, I wish it were more controlled than that.
That thought made it tempting to consider, well how hard would it be to
have the editor just hold the tree itself in memory and all the editor's
commands were oriented toward adding, deleting, changing the program
itself instead of changing textual characters which merely represent the
tree?
I see two reasons this might be a bad idea.
First, even in an ideal world, where you had a fully implemented syntax
tree editor, it might turn out that it's just worse than manually
editing the files.
But the other reason is one of tradition and infrastructure. If all the
experiences folks have is with text editing then they don't want to
change, and all the infrastructure is already built to support text
editing anyway.
It's this second reason I'm scared of. It would seem like a shame if
that were the only reason nobody wants to build a syntax-tree editor.
So I'm still interested in this idea. I'm going to try to research
people's experiences with this kind of thing.
http://en.wikipedia.org/wiki/Structure_editor
Zach
More information about the Digitalmars-d
mailing list