rtg2sig

Summary

Generates a Stratego Signature from an RTG.

Options

   --module n       Generated module has name n
   -i f|--input f   Read input from f
   -o f|--output f  Write output to f

Example

Consider the RTG that is produced by the example in sdf2rtg?.

  regular tree grammar
    start Exp
    productions
      Exp      -> Minus(Exp,Exp)
      Exp      -> Plus(Exp,Exp)
      Exp      -> Mod(Exp,Exp)
      Exp      -> Div(Exp,Exp)
      Exp      -> Mul(Exp,Exp)
      Exp      -> Int(IntConst)
      Exp      -> Var(Id)
      IntConst -> <string>
      Id       -> <string>

Invoke rtg2sig:

  > rtg2sig -i Exp.rtg -o Exp.str
I you don't specify an output file, then you need to specify the desired module name with the --module option.

The result is the following Stratego module:

  module Exp
  imports list-cons option
  signature
    constructors
      Minus : Exp * Exp -> Exp
      Plus  : Exp * Exp -> Exp
      Mod   : Exp * Exp -> Exp
      Div   : Exp * Exp -> Exp
      Mul   : Exp * Exp -> Exp
      Int   : IntConst -> Exp
      Var   : Id -> Exp
            : String -> IntConst
            : String -> Id

This Stratego module can be imported in you Stratego transformation tool.