systemml-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nakul Jindal <naku...@gmail.com>
Subject POC Eclipse IDE for DML
Date Mon, 21 Dec 2015 22:44:53 GMT
Hi,

I've been trying to build a Proof of Concept IDE for DML using Xtext.

https://github.com/nakul02/sysml.dml

Grammar File :
https://github.com/nakul02/sysml.dml/blob/master/sysml.dml/src/sysml/Dml.xtext

Here are some screenshots:
http://imgur.com/a/ZJyg7

The files shown are from the algorithms folder.
https://github.com/apache/incubator-systemml/tree/master/scripts/algorithms

(There was no particular reason to have chosen these files over others)

For this POC, my only goal was to get syntax highlighting to work in
Eclipse.
SystemML DML grammar is written in ANTLRv4 whereas Xtext uses ANTLRv3. Some
amount of work was needed on the grammar before it could be used it for
Xtext.

>From the screenshots, you can see that eclipse thinks there are syntactic
errors in the files. This has to do with statements ending in an optional
semicolon.

I only supplied xtext a grammar file from which to generate the IDE. I have
not yet worked on the generated code to add any other features.
I could not come up with a LL(*) grammar that would let me express optional
semicolons at the end of statements. For the time being, the grammar
requires semicolons at the end of statements (as you can see in the grammar
file :
https://github.com/nakul02/sysml.dml/blob/master/sysml.dml/src/sysml/Dml.xtext
)

I discussed this problem with Fred(@frreiss) and he suggested 3 ways of
dealing with this (assuming no way of modifying the grammar to fix this):

1. Support a subset of DML in the XText based tools
2. Modify the xtext generated tools to fix this
3. Write an eclipse plugin from scratch with complete control over lexer
and parser (among other components)

Option 1 requires the least amount of work.
I am not sure between options 2 & 3, which would be more work.


Is this useful to anyone?
If so, are there any thoughts or suggestions on how to approach the
optional semicolon problem?


Nakul Jindal
https://github.com/nakul02/

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message