internal STModel GetST(Identifier name) { STModel st = null; if (stMap.TryGetValue(name.Name, out st)) { return(st); } else { BekProgram prog = null; if (bekMap.TryGetValue(name.Name, out prog)) { if (converter == null) //same local functions for all bek programs { converter = BekConverter.MkBekToSTbConverter(solver, prog.ast.funcs, prog.ast.name); } st = converter.Convert(prog).ExploreBools().ToST(); st.Name = name.Name; stMap[name.Name] = st; return(st); } else { throw new QueryParseException(name.Line, name.Pos, string.Format("Undefined transducer: {0}", name)); } } }