{"id":15107583,"url":"https://github.com/moosetechnology/carrefour","last_synced_at":"2026-02-11T16:32:17.789Z","repository":{"id":96744875,"uuid":"595742823","full_name":"moosetechnology/Carrefour","owner":"moosetechnology","description":"Binding between Famix and FAST","archived":false,"fork":false,"pushed_at":"2024-10-24T11:40:56.000Z","size":487,"stargazers_count":0,"open_issues_count":6,"forks_count":2,"subscribers_count":1,"default_branch":"v5","last_synced_at":"2024-10-25T11:00:35.439Z","etag":null,"topics":["moose","pharo","smalltalk"],"latest_commit_sha":null,"homepage":"","language":"Smalltalk","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":"badetitou/Carrefour","license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moosetechnology.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-01-31T18:08:43.000Z","updated_at":"2024-10-24T11:40:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"83632ceb-042a-4f51-8b30-e79d63efac55","html_url":"https://github.com/moosetechnology/Carrefour","commit_stats":{"total_commits":226,"total_committers":6,"mean_commits":"37.666666666666664","dds":0.3141592920353983,"last_synced_commit":"3898add075fd839dce583b21aa201ca007625fb0"},"previous_names":[],"tags_count":7,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moosetechnology%2FCarrefour","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moosetechnology%2FCarrefour/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moosetechnology%2FCarrefour/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moosetechnology%2FCarrefour/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moosetechnology","download_url":"https://codeload.github.com/moosetechnology/Carrefour/tar.gz/refs/heads/v5","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":237763856,"owners_count":19362310,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["moose","pharo","smalltalk"],"created_at":"2024-09-25T21:25:43.219Z","updated_at":"2026-02-11T16:32:17.744Z","avatar_url":"https://github.com/moosetechnology.png","language":"Smalltalk","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Carrefour\n\n[![Moose version](https://img.shields.io/badge/Moose-11-%23aac9ff.svg)](https://github.com/moosetechnology/Moose)\n[![Moose version](https://img.shields.io/badge/Moose-12-%23aac9ff.svg)](https://github.com/moosetechnology/Moose)\n[![CI](https://github.com/moosetechnology/Carrefour/actions/workflows/test-moose11.yml/badge.svg?branch=v5)](https://github.com/moosetechnology/Carrefour/actions/workflows/test-moose11.yml)\n[![CI](https://github.com/moosetechnology/Carrefour/actions/workflows/test-moose12.yml/badge.svg?branch=v5)](https://github.com/moosetechnology/Carrefour/actions/workflows/test-moose12.yml)\n[![Coverage Status](https://coveralls.io/repos/github/moosetechnology/Carrefour/badge.svg?branch=v5)](https://coveralls.io/github/moosetechnology/Carrefour?branch=v5)\n\nBinding between Famix and FAST\n\n## Installation\n\nThe last stable version is\n\n```st\nMetacello new\n  githubUser: 'moosetechnology' project: 'Carrefour' commitish: 'v5' path: 'src';\n  baseline: 'Carrefour';\n  load\n```\n\n## Use\n\nCarrefour links entities in a FAST model to entities in a Famix model.\nIt is composed of 2 parts:\n- Carrefour meta-model\n- Binder with two main steps involved:\n  1. Generate the FAST model of a Famix entity (eg. a FamixMethod) with  `#getFASTModel`\n  2. Bind the nodes in the FAST model to entities in the Famix model with `bindFASTModel:`\n\n### Carrefour meta-model\n\nRepresents relations between Famix entities and FAST entities.\n\nThe relations are typically between:\n- FamixMethod and FASTBehaviouralEntity\n- FamixStructuralEntity and FASTVariableDeclarator, FASTExpression, or FASTAssignement\n- FamixInvocation and FASTFunctionCall or FASTMessageSend\nNote: *class names are only indicative, they do not really exist in any Famix or FAST meta-model*\n\n### Generating the FAST model\n\nDone by a *language dependent* parser.\nEach concerned FamixEntity should know how to do it by implementing `#getFASTModel`.\nFor example in Java, this method is implemented by `FamixJavaMethod` and all the main \"structured types\" (`FamixJavaClass`, `FamixJavaEnum`, `FamixJavaException`). \n\n### Binding\n\nDone by visiting the FAST model (an AST) and looking for corresponding Famix entities to each FAST entity.\nIt is implemented in `bindFASTModel:`\n\n## Developers\n\n### Update tests\n\nTo update the tests, you will need to rerun [VerveineJ](https://modularmoose.org/moose-wiki/Developers/Parsers/VerveineJ\n) on the testing resources.\nThis command should produce the .mse file.\n\n```sh\ncd testing\n\u0026 'D:\\Path\\To\\VerveineJ\\verveinej.bat' -format json -o testing.json -anchor assoc -autocp './src' './src'\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoosetechnology%2Fcarrefour","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoosetechnology%2Fcarrefour","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoosetechnology%2Fcarrefour/lists"}