Sha256: 96cac45cbf90cae75b877929c738311db02fb322716638d3addbdc150796c4f5

Contents?: true

Size: 1.09 KB

Versions: 12

Compression:

Stored size: 1.09 KB

Contents

// A system agnostic domain specific language for runtime monitoring and verification
// Basic events

insert(index,elem) matches {event:'func_pre',name:'my_insert',args:[index,elem]};

relevant matches insert(_,_)|remove(_,_)|size(_)|get(_,_);

insert_in_bounds(size) matches insert(index,_) with index >= 0 && index <= size;

del_false matches del(_,false);
not_add_true_del(el) not matches add(el,true) | del(el,_);

Main = relevant >> (CheckIndex<0> /\ add_rm_get >> CheckElem)!;
CheckIndex<size> =
    get_size(size)* (insert_in_bounds(size) CheckIndex<size+1> \/ remove_in_bounds(size) CheckIndex<size-1>);

Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty;
Main=relevant>>Msg<1,4>*!;

acquire(id) matches {event:'func_pre',name:'acquire',args:[_,id,...]};

Main = relevant >> Resources;
Resources =
    {let id; acquire(id)
        ((Resources | use(id)* release(id)) /\
        acqRel(id) >> release(id) all)
    }?;

msg(ty) matches {event:'func_pre',name:'msg',args:[ty]};
relevant matches msg(_);

Msg<inf,sup> = if(inf<=sup) msg(inf) Msg<inf+1,sup> else empty;
Main=relevant>>Msg<1,4>*!;

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
rouge-4.5.1 lib/rouge/demos/rml
rouge-4.5.0 lib/rouge/demos/rml
rouge-4.4.0 lib/rouge/demos/rml
rouge-4.3.0 lib/rouge/demos/rml
rouge-4.2.1 lib/rouge/demos/rml
rouge-4.2.0 lib/rouge/demos/rml
rouge-4.1.3 lib/rouge/demos/rml
rouge-4.1.2 lib/rouge/demos/rml
rouge-4.1.1 lib/rouge/demos/rml
rouge-4.1.0 lib/rouge/demos/rml
rouge-4.0.1 lib/rouge/demos/rml
rouge-4.0.0 lib/rouge/demos/rml