This was the first thing I implemented in Java in 2000 as a project
to show people in the company I worked at how it is possible to not
have 100 case statements in one method :)
Doru
On 3 May 2010, at 20:01, Alexandre Bergel wrote:
> Interesting. Thanks for pointing it out.
>
> Cheers,
> Alexandre
>
>
> On 3 May 2010, at 13:48, Tudor Girba wrote:
>
>> Opax is a very simple layer on top of a SAX Parser to let you
>> dispatch XML tags to a hierarchy of classes, rather than just
>> handling everything in one single method.
>>
>> Opax is available in Pharo:
>>
>> Gofer new
>> squeaksource: 'XMLSupport';
>> package: 'XML-Parser';
>> squeaksource: 'OPAX';
>> package: 'Opax';
>> load.
>>
>> So, you can subclass OPGenericElement and on the class side you
>> can implement xmlTags to return the types of tags that you want
>> this class to handle.
>>
>> The result is that you get a typed tree instead of a string one.
>> Afterwards you can do what you normally do with such an AST-like
>> structure. I typically implement all "reify" methods in these
>> classes.
>>
>> Cheers,
>> Doru
>>
>>
>> On 3 May 2010, at 15:27, Alexandre Bergel wrote:
>>
>>>> Perhaps having a look at Opax would ease a bit in getting from
>>>> XML to objects in the image.
>>>
>>> I haven't checked the Store@SCG, but what is opax? It is not
>>> listed in the tools section of the moose website. ScgBib does not
>>> know about this word it apparently.
>>>
>>> Cheers,
>>> Alexandre
>>>
>>>>
>>>>
>>>> On 30 Apr 2010, at 17:18, Alexandre Bergel wrote:
>>>>
>>>>> How the elements composing the AST can be represented. Maybe
>>>>> xml queries are enough at that level...
>>>>>
>>>>> Alexandre
>>>>>
>>>>>
>>>>> On 30 Apr 2010, at 09:02, Tudor Girba wrote:
>>>>>
>>>>>> It is cost that I had in mind from the beginning. Now, we have
>>>>>> CAnalyzer in place, so I guess it would be quite cheap to
>>>>>> generalize it a bit and to hook it with the FAMIXFileAnchor to
>>>>>> get an AST of it.
>>>>>>
>>>>>> Cheers,
>>>>>> Doru
>>>>>>
>>>>>>
>>>>>> On 30 Apr 2010, at 09:06, Stéphane Ducasse wrote:
>>>>>>
>>>>>>> well probably now with how much effort.
>>>>>>>
>>>>>>> stef
>>>>>>>
>>>>>>> On Apr 30, 2010, at 7:34 AM, Tudor Girba wrote:
>>>>>>>
>>>>>>>> Exactly.
>>>>>>>>
>>>>>>>> Doru
>>>>>>>>
>>>>>>>> On 30 Apr 2010, at 05:47, Alexandre Bergel wrote:
>>>>>>>>
>>>>>>>>> A model originally created with inFusion, could then
be
>>>>>>>>> refined by loading srcML files, to add for example
AST info.
>>>>>>>>>
>>>>>>>>> Alexandre
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On 29 Apr 2010, at 09:53, Tudor Girba wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>>
>>>>>>>>>> Another related idea is to not use srcML for the
main
>>>>>>>>>> parsing, but to keep it around for custom
queries.
>>>>>>>>>>
>>>>>>>>>> So, we could still keep the current solution with
inFusion
>>>>>>>>>> for the main models, and have srcML for when we
want to
>>>>>>>>>> write queries that need access to AST.
>>>>>>>>>>
>>>>>>>>>> For example, if you do not have the right
libraries,
>>>>>>>>>> inFusion will not create annotation objects. If I
would
>>>>>>>>>> have access to the AST, I could write a query
(even if it
>>>>>>>>>> is expensive at first) that checks the AST of
class for
>>>>>>>>>> the existence of such annotations.
>>>>>>>>>>
>>>>>>>>>> I would use this. And maybe like this the srcML
interface
>>>>>>>>>> would grow in time and get better. What do you
think?
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Doru
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On 28 Apr 2010, at 14:44, Alexandre Bergel
wrote:
>>>>>>>>>>
>>>>>>>>>>> As Simon said, the type resolution in C is
easy. In C++
>>>>>>>>>>> it is another beast.
>>>>>>>>>>>
>>>>>>>>>>> Alexandre
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On 28 Apr 2010, at 04:47, Simon Denier
wrote:
>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> On 28 avr. 2010, at 10:36, Stéphane
Ducasse wrote:
>>>>>>>>>>>>
>>>>>>>>>>>>> the problem is that meta model is
different so you
>>>>>>>>>>>>> would have to map everything.
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>> Besides, from what I have seen, the
generated xml is
>>>>>>>>>>>> sometimes not regular: i.e. similar
things in the code
>>>>>>>>>>>> does not have the same xml
representation. This makes it
>>>>>>>>>>>> cumbersome as it is not documented, so
you have to
>>>>>>>>>>>> decode the grammar from the xml and adapt
to such
>>>>>>>>>>>> irregularities.
>>>>>>>>>>>>
>>>>>>>>>>>> In the end, you still have to maintain a
xml parser for
>>>>>>>>>>>> each language and you still dont have
control about what
>>>>>>>>>>>> is extracted. And you have to do the type
resolution :)
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> Stef
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>> On Apr 28, 2010, at 10:28 AM, Laval
Jannik wrote:
>>>>>>>>>>>>>
>>>>>>>>>>>>>> Hi all,
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> I am looking at srcML, and I see
that it make XML
>>>>>>>>>>>>>> files from Java and C++ source
code.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Since we use it for C source
code, it should be
>>>>>>>>>>>>>> possible to make it works with
C++ and java.
>>>>>>>>>>>>>> This strategy allows us to not us
a special tool for
>>>>>>>>>>>>>> each language.
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> What do you think about it ?
>>>>>>>>>>>>>>
>>>>>>>>>>>>>> Cheers
>>>>>>>>>>>>>> ---
>>>>>>>>>>>>>> Jannik Laval
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
>>>>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>>>>> Moose-dev mailing list
>>>>>>>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>>>>>>>
>>>>>>>>>>>>>
>>>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>>>> Moose-dev mailing list
>>>>>>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>>>>>>
>>>>>>>>>>>> --
>>>>>>>>>>>> Simon
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>>> Moose-dev mailing list
>>>>>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>>
_,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>>>>>>> Alexandre Bergel
http://www.bergel.eu
>>>>>>>>>>>
^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
_______________________________________________
>>>>>>>>>>> Moose-dev mailing list
>>>>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>>
www.tudorgirba.com
>>>>>>>>>>
>>>>>>>>>> "What we can governs what we wish."
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Moose-dev mailing list
>>>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>>>>>> Alexandre Bergel
http://www.bergel.eu
>>>>>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> _______________________________________________
>>>>>>>>> Moose-dev mailing list
>>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>>
>>>>>>>> --
>>>>>>>>
www.tudorgirba.com
>>>>>>>>
>>>>>>>> "We are all great at making mistakes."
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> Moose-dev mailing list
>>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>>
>>>>>>>
>>>>>>> _______________________________________________
>>>>>>> Moose-dev mailing list
>>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>
>>>>>> --
>>>>>>
www.tudorgirba.com
>>>>>>
>>>>>> "Yesterday is a fact.
>>>>>> Tomorrow is a possibility.
>>>>>> Today is a challenge."
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>> _______________________________________________
>>>>>> Moose-dev mailing list
>>>>>> Moose-dev(a)iam.unibe.ch
>>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>>>
>>>>>
>>>>> --
>>>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>>>> Alexandre Bergel
http://www.bergel.eu
>>>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> Moose-dev mailing list
>>>>> Moose-dev(a)iam.unibe.ch
>>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>
>>>> --
>>>>
www.tudorgirba.com
>>>>
>>>> "Problem solving should be concentrated on describing
>>>> the problem in a way that is relevant for the solution."
>>>>
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Moose-dev mailing list
>>>> Moose-dev(a)iam.unibe.ch
>>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>>>
>>>
>>> --
>>> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
>>> Alexandre Bergel
http://www.bergel.eu
>>> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>>>
>>>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Moose-dev mailing list
>>> Moose-dev(a)iam.unibe.ch
>>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>> --
>>
www.tudorgirba.com
>>
>> "Beauty is where we see it."
>>
>>
>>
>>
>> _______________________________________________
>> Moose-dev mailing list
>> Moose-dev(a)iam.unibe.ch
>>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
>>
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel
http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Moose-dev mailing list
> Moose-dev(a)iam.unibe.ch
>
https://www.iam.unibe.ch/mailman/listinfo/moose-dev
--
www.tudorgirba.com
"Be rather willing to give than demanding to get."
_______________________________________________
Moose-dev mailing list
Moose-dev(a)iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev