| 
   
 2. Source language 
 A source program for the RLA tool is made of three parts: 1. the declaration of the input symbols (the alphabet of the regular languages) · a sequence of alphanumeric strings enclosed in “%{” and “%}” brackets 2. the declaration of algebraic expressions · a sequence of declarations enclosed in “%[” and “%]” brackets · each declaration associates an identifier (a “$” character followed by an alphanumeric string) with an expression based on input symbols, previously defined identifiers, and the character “&” representing the empty string · each expression can be: · a regular expression enclosed in “[” and “]” brackets · the result of the set operations union (+), difference (-), intersection (#) and complement (!) over regular languages denoted by expressions enclosed in “[” and “]” brackets 3. the evaluation of algebraic properties · a sequence of questions of three possible types: · is the regular language corresponding to a given identifier equal to (=?) the regular language corresponding to another identifier ? · is the regular language corresponding to a given identifier a subset of (in?) the regular language corresponding to another identifier ? · does a string of input symbols (possibly empty) enclosed in “(” and “)” parentheses belong to (in?) the regular language corresponding to a given identifier ? 
 This is an example of RLA source program: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 You can directly run the RLA tool by saving in a same directory: · the rla.jar executable file · the java-cup-11a.jar archive file · the source program Sample.rla . Then run the application from the command line: 
 java -jar rla.jar Sample.rla 
 The output reported in TranslationResult.txt will be printed on the Java console. 
 
 
 
  | 
 
| 
   /******************************************************************** Sample RLA source program *********************************************************************/ 
 // input symbols 
 %{ a,b,c,d %} 
 // expression declarations 
 %[ $1=[&|(a|a b)(a b)*] $2=[a|(a|a a)(b a)* b] $3=![$1] + [a (a b)*] $4=[$1] - [$2] $5=[$1] + [$2] $6=[$1] # [$2] $7=![[![$1]] # [![$2]]] $8=![[![$1]] + [![$2]]] %] 
 // evaluations 
 $1 =? $2 $2 in? $1 () in? $1 (a a b a b) in? $1 (a a a b a b) in? $1 $5 =? $7 $6 =? $8  |