Notice: This Wiki is now read only and edits are no longer possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.
Difference between revisions of "EDT:Extensible Compiler Development"
Line 1: | Line 1: | ||
− | This page covers the work being done to make the compiler more extensible. Validation, for example, will be made extensible. A new model will be created so that bound AST will use IRs instead of bindings. The old binding model will still exist so that tooling written against it does not need to be rewritten. New tooling will be encouraged to use the new IR-based model.<br> | + | This page covers the work being done to make the compiler more extensible. Validation, for example, will be made extensible. A new model will be created so that bound AST will use IRs instead of bindings. The old binding model will still exist so that tooling written against it does not need to be rewritten. New tooling will be encouraged to use the new IR-based model.<br> |
− | <br> | + | <br> |
− | == Where to get the code<br> | + | == Where to get the code<br> == |
CVS repository: :extssh:<user>@dev.eclipse.org:/cvsroot/tools | CVS repository: :extssh:<user>@dev.eclipse.org:/cvsroot/tools | ||
− | Projects:<br>org.eclipse.edt.compiler<br>org.eclipse.edt.mof<br>org.eclipse.edt.mof.egl<br><br>Branch:<br>edtExtensibleCore<br> | + | Projects:<br>org.eclipse.edt.compiler<br>org.eclipse.edt.mof<br>org.eclipse.edt.mof.egl<br><br>Branch:<br>edtExtensibleCore<br> |
− | <br> | + | <br> |
− | == How to run the code<br> | + | == How to run the code<br> == |
− | Right now you can only compile in SDK mode (the IDE builder will NOT work). Take a look at the "EGL2IR XML" Java Application launch configuration that's predefined. This will prompt you a couple times if you run it, or you can create a copy of this launch configuration and hard-code some values if you don't want to be prompted. Here's an example of hardcoded arguments:<br> | + | Right now you can only compile in SDK mode (the IDE builder will NOT work). Take a look at the "EGL2IR XML" Java Application launch configuration that's predefined. This will prompt you a couple times if you run it, or you can create a copy of this launch configuration and hard-code some values if you don't want to be prompted. Here's an example of hardcoded arguments:<br> |
<pre>-eglpath "/home/justin/.workspaces/edt-ext/test/EGLSource/" -irDestination "/home/justin/.workspaces/edt-ext/test/batchbin" -xmlOut "/home/justin/.workspaces/edt-ext/test/EGLSource/pkg/prog.egl" | <pre>-eglpath "/home/justin/.workspaces/edt-ext/test/EGLSource/" -irDestination "/home/justin/.workspaces/edt-ext/test/batchbin" -xmlOut "/home/justin/.workspaces/edt-ext/test/EGLSource/pkg/prog.egl" | ||
</pre> | </pre> | ||
− | <br> | + | <br> |
− | == | + | == Parser Updates<br> == |
− | + | Several changes to the parser/lexer grammer files will be made:<br> | |
− | + | #Remove primitive types | |
+ | #Add ability for name types to include parameters. This is to support parameterizable types like eDecimal(5,2). This will requie the new expression to change, since the arguments to constructors will now be on the type. | ||
+ | #Refactor the isNullable flag to be on fields, function returns and array elements, instead of being on the type. | ||
+ | #Remove old keywords, such as FIELD and SQLNULLABLE from function parms | ||
− | + | <br> | |
− | TBD<br> | + | <br> |
+ | |||
+ | == Validation Design<br> == | ||
+ | |||
+ | TBD<br> | ||
+ | |||
+ | <br> | ||
+ | |||
+ | == Serialization Design<br> == | ||
+ | |||
+ | TBD<br> | ||
[[Category:EDT]] | [[Category:EDT]] |
Revision as of 10:22, 16 July 2012
This page covers the work being done to make the compiler more extensible. Validation, for example, will be made extensible. A new model will be created so that bound AST will use IRs instead of bindings. The old binding model will still exist so that tooling written against it does not need to be rewritten. New tooling will be encouraged to use the new IR-based model.
Contents
Where to get the code
CVS repository: :extssh:<user>@dev.eclipse.org:/cvsroot/tools
Projects:
org.eclipse.edt.compiler
org.eclipse.edt.mof
org.eclipse.edt.mof.egl
Branch:
edtExtensibleCore
How to run the code
Right now you can only compile in SDK mode (the IDE builder will NOT work). Take a look at the "EGL2IR XML" Java Application launch configuration that's predefined. This will prompt you a couple times if you run it, or you can create a copy of this launch configuration and hard-code some values if you don't want to be prompted. Here's an example of hardcoded arguments:
-eglpath "/home/justin/.workspaces/edt-ext/test/EGLSource/" -irDestination "/home/justin/.workspaces/edt-ext/test/batchbin" -xmlOut "/home/justin/.workspaces/edt-ext/test/EGLSource/pkg/prog.egl"
Parser Updates
Several changes to the parser/lexer grammer files will be made:
- Remove primitive types
- Add ability for name types to include parameters. This is to support parameterizable types like eDecimal(5,2). This will requie the new expression to change, since the arguments to constructors will now be on the type.
- Refactor the isNullable flag to be on fields, function returns and array elements, instead of being on the type.
- Remove old keywords, such as FIELD and SQLNULLABLE from function parms
Validation Design
TBD
Serialization Design
TBD