Wednesday, January 05, 2011
 

Table support in MPS 2.0 coming along nicely

MPS 2.0 will feature direct support for tables in editors. I am currently playing around with the code in the MASTER branch in the public git, and I have created a simple example for tables: decision table support for Java.

Here is an example model:



You can now comfortably insert new rows or columns, delete them, and enter expressions. The way you implement it in the editor definition is by subclassing a TableModel class, just as you know it from Swing. A couple of table model base classes exist for the various kinds of tables and matrixes you might want. In the case of this example, I map the table cells onto a linear structure, as defined in the following code (ExprHolders simply wrap/hold an arbitrary expression):



Finally, for generation, I first map it to a new generic switch expression I have added to Java - the intermediate model looks as follows:



In the last step, this is then mapped to a bunch of if statements....


Of course there are still a couple of quirks (it's an arbitrary pull from the repository, not a release!), but table support is coming along nicely.

Also the new build/make system for languages is nice. It now figures out automatically which parts of languages have to be regenerated, reducing average generation times quite a bit.
 
Comments:
Crazy stuff.
 
Post a Comment

<< Home

back to voelter.de

ABOUT ME
This is Markus Voelter's Blog. It is not intended as a replacement for my regular web site, but rather as a companion that contains ideas, thoughts and loose ends.

ARCHIVES
December 2005 / January 2006 / February 2006 / March 2006 / April 2006 / May 2006 / June 2006 / July 2006 / August 2006 / September 2006 / October 2006 / November 2006 / December 2006 / February 2007 / March 2007 / April 2007 / May 2007 / June 2007 / July 2007 / September 2007 / October 2007 / November 2007 / December 2007 / January 2008 / February 2008 / March 2008 / April 2008 / May 2008 / June 2008 / July 2008 / August 2008 / September 2008 / October 2008 / November 2008 / December 2008 / January 2009 / February 2009 / March 2009 / April 2009 / May 2009 / June 2009 / July 2009 / August 2009 / September 2009 / October 2009 / November 2009 / December 2009 / January 2010 / February 2010 / April 2010 / May 2010 / June 2010 / July 2010 / August 2010 / September 2010 / October 2010 / November 2010 / December 2010 / January 2011 / March 2011 / April 2011 / May 2011 / June 2011 / July 2011 / October 2011 / November 2011 / December 2011 / January 2012 / February 2012 / October 2012 / January 2013 /

FEED
You can get an atom feed for this blog.