Hello,
With nicolas we started to have a look at the eclipse-php-parser (provide
with PDT), to export a famix-mse file from a PHP project. We already started
to build an eclipse plugin that does some work:
=> We create an AST for each php file of the project
=> Then we have a visitor on this ast, and we are therfore able to make a
specific action for each kind of node visited
=> For now, we just export some FAMIXNamespace, FAMIXClass, FAMIXMethods.
So what's left is to implement each visit-method to extract informations
for each node visited. For that we will have to know a bit more PHP :) Maybe
the metamodel will have to be extended to take into account some
PHP-specific elements, I don't know.
If you want to have a look, sources are available via svn at:
https://scm.gforge.inria.fr/svn/lse/Projects/Verveine
Vervaine provide the extractor (not yet finished) for Java ans this one for
PHP. Both are using a common mechanism to generate famix entities and
extract them to mse.
I will be on holidays until august and will probably no longer work on it
until august. So if you want to have a look (and have the courage to install
eclipse to read java code:)), have some suggestions, want to implement
something, feel free to participate :)
Some people suggested trying moose for analysis of SAS programs, and I'm
trying to figure out where to start with the meta-modeling.
SAS is not object oriented, though parts of it could be imagined to be.
The main SAS code contains blocks of statements that begin with DATA or
PROC; each block could probably be thought of as a function--to be
precise, the application of a function.
If I want to make some new models, where do I start? FM3? FAMIX?
elsewhere? The 4.0 release announcement says FM3 and FAMIX3 are both
implemented in Fame, so maybe start with Fame? I've read some
documentation, but I can't tell.
My inspiration for the project is understanding how some SAS datasets
were produced. I have a system that creates numerous datasets, which
feed into later datasets, etc. This is split at least across a couple
of program files and it's really too complicated to keep in the brain.
If I get ambitious it would also be useful to trace where particular
variables came from, in the sense of both datasets and individual
expressions.
The only thing resembling a SAS parser I've run into (except for SAS,
which is closed source) is a Perl module, and it looked relatively
primitive. I've been using PetitParser, and at the point I started
thinking about what it would parse results into.
Thanks for any pointers.
Ross Boylan
Hi folks. I am trying to script some distribution maps. For the moment I was
doing simple things with just two colors. Example:
^ (DistributionMap onContainers: (self listOfCorePackages
collect: [ :each | (PackageInfo named: each) ]) elements: #classes
properties: [:element | element hasUsedInstances = true] )
render
open.
That show me classes with used instances with blue and the rest with red.
Now I want:
element hasUsedInstances = true -> blue
element instanceCount > 0 and: [hasUsedInstances = false] -> red
the rest (without instances) -> yellow
Forget about the colors, I don't care which color (although it would be
cool to be able to choose). What I don't know how to do is to define
multiple properties. And I cannot use the wizard, I have to do it by code ;)
Can someone help ?
Thank you very much in advance.
Mariano
Hi Pharoers, and Smalltalkers in general,
Have you seen waited to assess the cycles in your software? Now you can :)
We request some of you to perform an experiment using DSM to see your software package structure and to fix cycles between packages. Our tool shows dependencies between packages and highlight some bad dependencies generating structure cycles. It also helps to understand dependencies.
Your goal is to fill a survey using our tool.
I prepared a mini-tutorial about DSM and eDSM. It can help you to understand the visualization tool.
To ease the use of our tool, I loaded it in a PharoCore1.2. And there are two archives available:
- the first contains an image with our tool with a model of Pharo loaded in it, so you can play with our tool on pharo itself. It can be downloaded here: http://dl.dropbox.com/u/7739334/dsmWithPharo.zip. Pay attention, the image is slow.
- the second contains the same thing without the model of Pharo. Here, you have to load your code, then populate a moose model and use the tool. It can be downloaded here: http://dl.dropbox.com/u/7739334/dsmWithoutPharo.zip
The two archives contain the tutorial and the survey. If you are a pharo integrator, we suggest you to take the one with Pharo model loaded, else the other.
To use our tool, load your tool in Pharo. Then do "MoosePanel open", and import your software in Moose by "import from Smalltalk image". When it is imported, select your project in the list on the left of MoosePanel, and select "all model packages" on the list on center.
Then, you have two choices:
- you can scan all your project: right click on "all model packages" and do DSM.
- or select "all model packages" then select some packages in the next list and right click, do DSM.
After that, you can perform the survey (with reading of the tutorial). We need your answers for the end of August. So, you have two months to do it.
If you have any question, just let me know.
Best regards,
Jannik.
---
Jannik Laval
PhD Student - Rmod Team - INRIA
Certified Project Management Associate (IPMA)
http://www.jannik-laval.euhttp://rmod.lille.inria.fr
---
Hi,
As you might know, Pharo 1.1 has just been released.
I updated hudson to build based on this version. Everything looks fine.
Cheers,
Doru
--
www.tudorgirba.com
"It's not how it is, it is how we see it."
Hi all
We got a one year engineer position to support the development of a demonstration for Moose.
The constraints linked with the position are that the person should have got his master
in 2009 or 2010. The starting date is 1 of December 2010.
The salary should be around 3500 Euros bruto ~> 2400 Euros before taxes (but after health insurance).
The job will probably consist in
- getting Moose running into a web browser
- having a better reporting system.
- building a dashboard
- porting part of codecity
By september we should decide if we take this year in 2010 or 2011 (for decembre 2011 the person should have got a master
in 2010 or 2011).
Please send your cv.
Stef
Hi,
moosetechnology.org is temporarily down due to a mistake I made in the
DNS settings. It should be back online in 1 day.
Sorry for the trouble :(.
Cheers,
Doru
--
www.tudorgirba.com
"If you interrupt the barber while he is cutting your hair,
you will end up with a messy haircut."
Hi,
Yet another question on PetitParser :)
All the grammars that I find in PetitParser (e.g., PetitXML,
PetitSmalltalk) are defined in
a single class called PP...Grammar. However, the Java grammar has many rules and
including all of them in a single class seems not the right approach.
For example, now I have a class called PPJavaLexicon, in which I cover the rules
for finding tokens and comments (i.e. the lexical structure [1]).
Then, for example,
I would continue working on types, values, and variables [2]. So, I would
create another class that references PPJavaLexicon and uses the
rules defined there to define the new ones. Something like:
PPJavaTypes>>typeVariable
^ppJavaLexicon identifier
Is this a good approach to split a grammar in more classes,
or would you suggest something different?
Thank you,
Alberto
[1] http://java.sun.com/docs/books/jls/third_edition/html/lexical.html
[2] http://java.sun.com/docs/books/jls/third_edition/html/typesValues.html
Hi Felipe,
The result of opening a browser is a window.
So, you could use something like this:
browser := GLMTabulator new.
...
window := browser openOn: ...
window maximize.
...
window delete.
Could I ask in what context you are using Glamour? Also, a better
forum for discussing these issues is the moose-dev mailing list:
- address: moose-dev(a)iam.unibe.ch
- registration: https://www.iam.unibe.ch/mailman/listinfo/moose-dev
Cheers,
Doru
On 28 Jul 2010, at 21:04, Alexandre Bergel wrote:
> Hi Felipe,
>
> No idea, but this is good to see you here!
>
> Alexandre
>
>
> On 28 Jul 2010, at 18:47, Felipe Ignacio Valverde Campos wrote:
>
>> Hi, i'm beginner on this tools, so i need your help please :)
>> i have some doubts about Glamour, specificaly with GLMTabulator.
>>
>> how can i set the window size ?
>> and how can i close it without pressing the X ?
>>
>> thanks
>> --
>> http://www.dcc.uchile.cl/~fvalverd/public_key.asc
>> Estudiante de Ingeniería Civil en Computación.
>> Facultad de Ciencias Físicas y Matemáticas.
>> Universidad de Chile.
>> _______________________________________________
>> Pharo-project mailing list
>> Pharo-project(a)lists.gforge.inria.fr
>> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
>
> --
> _,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:
> Alexandre Bergel http://www.bergel.eu
> ^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;._,.;:~^~:;.
>
>
>
>
>
>
> _______________________________________________
> Pharo-project mailing list
> Pharo-project(a)lists.gforge.inria.fr
> http://lists.gforge.inria.fr/cgi-bin/mailman/listinfo/pharo-project
--
www.tudorgirba.com
"Reasonable is what we are accustomed with."
Hi,
As I wrote in my previous e-mail, I am trying to write the Java grammar
for PetitParser. I am following "The Java Language Specification,
Third Edition",
which is the last available book written by Sun with the specification
for the whole
Java language [1]. It covers Java 1.5.
The project, PetitJava, is on SqueakSource [2].
I've just "finished" to implement the literals [3]
and I am trying it with some tests.
I find something strange, thus probably there is something
in PetitParser that I don't get.
As an example, among the primitives in PPJavaGrammar you find:
<snips>
PPJavaGrammar>>octalEscape
^ $\ asParser , ( octalDigit / (octalDigit , octalDigit) /
(zeroToThree , octalDigit , octalDigit) )
PPJavaGrammar>>octalDigit
^PPPredicateObjectParser anyOf: '01234567'
PPJavaGrammar>>zeroToThree
^PPPredicateObjectParser anyOf: '0123'
</snips>
I take some one of the failing tests as an example:
<snips>
PPJavaGrammarTest>>testOctalEscape1
self parse: '\0' rule: #octalEscape
PPJavaGrammarTest>>testOctalEscape2
self parse: '\00' rule: #octalEscape
PPJavaGrammarTest>>testOctalEscape3
self parse: '\000' rule: #octalEscape
</snips>
While the first test passes as I expected,
the second and the third ones do not.
However, they should be recognized as:
$\ , octalDigit , octalDigit
and
$\ , zeroToThree, octalDigit , octalDigit
as stated in the "octalEscape" implementation.
Is there something wrong with my implementation,
or didn't I understand correctly the '/' operator?
Thank you,
Alberto
[1] http://java.sun.com/docs/books/jls/third_edition/html/j3TOC.html
[2] http://www.squeaksource.com/PetitJava.html
[3] http://java.sun.com/docs/books/jls/third_edition/html/lexical.html#3.10