Computer Laboratory

tesla-macros.h File Reference

Detailed Description

Macros to prettify TESLA names.

Definition in file tesla-macros.h.

#include <tesla.h>
+ Include dependency graph for tesla-macros.h:

Go to the source code of this file.

Macros

#define TESLA_WITHIN(function, expression)
 An assertion made within the execution of a particular function. More...
 
#define TESLA_ASSERT(locality, start, end, expression)
 An inline assertion. More...
 
#define TESLA_GLOBAL(...)   TESLA_ASSERT(__tesla_global, __VA_ARGS__)
 An assertion in the global TESLA context. More...
 
#define TESLA_PERTHREAD(...)   TESLA_ASSERT(__tesla_perthread, __VA_ARGS__)
 An assertion in a thread's TESLA context. More...
 
#define TIGNORE   __tesla_ignore
 An epsilon transition in a a TESLA NFA; a non-event. More...
 
#define TSEQUENCE(...)   __tesla_sequence(TIGNORE, __VA_ARGS__)
 A strictly-ordered sequence of events. More...
 
#define called(...)   __tesla_call(((void)__VA_ARGS__, TIGNORE))
 
#define returned(...)   __tesla_return(__VA_ARGS__)
 
#define callee(...)   __tesla_callee(TIGNORE, __VA_ARGS__)
 
#define caller(...)   __tesla_caller(TIGNORE, __VA_ARGS__)
 
#define strict(...)   __tesla_strict(TIGNORE, __VA_ARGS__)
 
#define conditional(...)   __tesla_conditional(TIGNORE, __VA_ARGS__)
 
#define flags(...)   __tesla_flags(__VA_ARGS__)
 
#define bitmask(...)   __tesla_mask(__VA_ARGS__)
 
#define TESLA_NOW   __tesla_now
 
#define TESLA_STRUCT_AUTOMATON(...)   __tesla_struct_usage(__VA_ARGS__)
 
#define automaton(name,...)   __tesla_automaton(name, __VA_ARGS__)
 
#define tesla_done   return (__tesla_automaton_done())
 
#define optional(...)   __tesla_optional(TIGNORE, __VA_ARGS__)
 
#define ANY_REP   INT_MAX
 
#define REPEAT(m, n,...)   __tesla_repeat(m, n, __VA_ARGS__)
 
#define UPTO(n,...)   __tesla_repeat(0, n, __VA_ARGS__)
 
#define ATLEAST(n,...)   __tesla_repeat(n, ANY_REP, __VA_ARGS__)
 
#define ANY(int_type)   __tesla_any(int_type)
 
#define previously(...)   TSEQUENCE(__VA_ARGS__, TESLA_NOW)
 A more programmer-friendly way to write assertions about the past. More...
 
#define eventually(...)   TSEQUENCE(TESLA_NOW, __VA_ARGS__)
 A more programmer-friendly way to write assertions about the future. More...