|
From: Jendrik J. <jen...@tu...> - 2007-09-17 07:20:38
|
Hi,
to "extend" a language, you define a new (abstract syntax) grammar and
refer in it to constructs of other languages ("language.construct"
notation) to reuse them.
The concrete syntax, you should probably re-define completely (or use
the inheritance mechanism (EXTENDS keyword), which does not always work
very well yet). It does not influence the interpretation. Note, that the
first rule in the concrete syntax will determine the start symbol for
the parser. So the concrete syntax definition for an extended
composition language should start with the rule for
"minimalcl.CompositionProgram".
Cheers,
Jendrik
Jakob Henriksson wrote:
> Hi,
>
> Yes, that would of course be ideal. But I never tried to extend an
> extended language before. Even though conceptually there is no real
> difference, it doesn't seem to be straight-forward from a practical
> point-of-view. But, I will try it out a little and report back on my
> experiences ;)
>
> Cheers,
> Jakob
>
> On Wed, 12 Sep 2007 10:09:15 +0200, Steffen Zschaler
> <Ste...@tu...> wrote:
>
>> Hi,
>>
>> I'm not sure, but wouldn't it be better to develop a new plugin with
>> only your new concepts instead of changing
>> de.tudresden.reuseware.fracola? And couldn't you, there, define a new
>> language using the grammar inheritance mechanisms of Reuseware?
>>
>> Just guessing...
>>
>> Steffen
>>
>> Jakob Henriksson schrieb:
>>> Hi again,
>>>
>>> It's not what it seems, I'm not talking to myself. Instead I talked to
>>> Steffen offline who pointed me in the right direction. New interpreters
>>> for the composition language can be added to
>>> de.tudresden.reuseware.fracola and registered in the corresponding
>>> plugin.xml file (but perhaps no-one should commit any drastic changes
>>> without checking with the people involved first? Which I guess is Sven
>>> now?) Anyway, I tried it on my local copy and it worked fine.
>>>
>>> But, then it becomes interesting how one can extend the basiccl language
>>> into a specific composition language used for a specific DCS (dedicated
>>> composition system). For example, if I want a "callmytool" construct in
>>> the language in which I write composition operators for Modular Xcerpt,
>>> how do I extend the basiccl language into 'mybasiccl' so I only make
>>> modifications to this extension and not the core language (basiccl)?
>>>
>>> The search continues...
>>>
>>> Jakob
>>>
>>> On Tue, 11 Sep 2007 14:11:23 +0200, Jakob Henriksson
>>> <jak...@tu...> wrote:
>>>
>>>
>>>> Hi hackers,
>>>>
>>>> For some experimental development I want to have the possibility to
>>>> call
>>>> an external tool during execution of a composition operator, i.e, to
>>>> write something like this:
>>>>
>>>> exec("path-to-tool", param_1, ..., param_n);
>>>>
>>>> or perhaps even something more specific:
>>>>
>>>> USEMYTOOL WITH PARAMS param_1, ..., param_n;
>>>>
>>>> I can extend the composition language to allow such statements, but
>>>> where can I treat the parameters and implement the actions to take on
>>>> execution of such a statement?
>>>>
>>>> Can someone point me in the direction, or describe how to create some
>>>> boiler-plate code that can later be augmented for the exact purpose of
>>>> the execution of those statements?
>>>>
>>>> In short: I want a Java-method to interpret those statements, where
>>>> does
>>>> the code go?
>>>>
>>>> Thanks,
>>>> Jakob
>>>>
>>>>
>>>
>>>
>>>
>
>
>
--
Dipl.-Medieninf. Jendrik Johannes
Research Assistant
Technische Universität Dresden
Department of Computer Science
Phone +49 351 463 42073
Fax +49 351 463 38459
Email jen...@tu...
|