/// <summary>
 /// Generate an acceptor rooted in def from a compound language definition and adds it to the list of acceptors
 /// </summary>
 public bool AddAcceptor(LangDefDef def, FastTransducerInstance fti, Dictionary<string, Def> defs)
 {
     var acceptor = OperationTranGen.getTreeAutomatonFromExpr(def.expr, fti, defs);
     acceptors.Add(def.func.name.text, acceptor);
     if (acceptor.IsEmpty)
         fti.fastLog.WriteLog(LogLevel.Normal, string.Format("the transducer '{0}' is empty", def.func.name.text));
     return true;
 }
 //Generate CSharp for a definition of type LangDefDef
 private static bool GenerateLanguageDefinition(LangDefDef def, StringBuilder sb)
 {
     sb.AppendLine("public bool " + def.func.name + "(){");
     int x;
     GenerateDefExpr(def.expr, sb, "this", 0, out x);
     sb.AppendLine("}");
     return true;
 }