Esempio n. 1
0
        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));
                }
            }
        }