Closed rlwww closed 2 months ago
Supporting modules requires some more fundamental (theoretical) considerations. We still need to make up our minds, what kind of module system we want to build. This might deviate from Souffle's components quite a bit. In this sense, #324 is still on the roadmap. The feature is not vital for implementing a basic Doop-like program analysis since the same behavior can likely be achieved already by executing multiple Nemo programs consecutively or simply merging them into a single Nemo program.
The following syntax features have been manually found in the basic-only analysis of DOOP. Also, following files which are added automatically by DOOP:
facts/facts.dl
,basic/basic.dl
,basic-only/analysis.dl
, and possible more (depending on flags, see https://bitbucket.org/yanniss/doop/src/master/src/main/groovy/org/clyze/doop/core/SouffleAnalysis.groovy).It probably does not make sense to mirror the Souffle syntax 1:1, so some things can/must be replaced with some additional preprocessing of the rules.
[x] #325
min
andcount
, see https://souffle-lang.github.io/aggregates-
,*
, see https://souffle-lang.github.io/argumentsConstrains
!match("sun.*", ?class),