public class Z2B extends Object implements net.sourceforge.czt.base.visitor.TermVisitor<Object>, net.sourceforge.czt.base.visitor.ListTermVisitor<Object>, net.sourceforge.czt.z.visitor.LatexMarkupParaVisitor<Object>, net.sourceforge.czt.z.visitor.GivenParaVisitor<Object>, net.sourceforge.czt.z.visitor.FreeParaVisitor<Object>, net.sourceforge.czt.z.visitor.FreetypeVisitor<Object>, net.sourceforge.czt.z.visitor.AxParaVisitor<Object>, net.sourceforge.czt.z.visitor.ConjParaVisitor<Object>, net.sourceforge.czt.z.visitor.NarrParaVisitor<Object>, net.sourceforge.czt.z.visitor.OptempParaVisitor<Object>, net.sourceforge.czt.z.visitor.UnparsedParaVisitor<Object>, net.sourceforge.czt.z.visitor.VarDeclVisitor<Object>, net.sourceforge.czt.z.visitor.ConstDeclVisitor<Object>, net.sourceforge.czt.z.visitor.ZDeclListVisitor<Object>, net.sourceforge.czt.z.visitor.ZParaListVisitor<Object>, net.sourceforge.czt.z.visitor.ZFreetypeListVisitor<Object>
This class converts a Z section into a B machine.
| Constructor and Description |
|---|
Z2B(net.sourceforge.czt.session.SectionManager manager) |
| Modifier and Type | Method and Description |
|---|---|
protected void |
addPred(net.sourceforge.czt.z.ast.Pred pred,
List<net.sourceforge.czt.z.ast.Pred> preds)
Flatten conjuncts and add them to the given list.
|
protected void |
addPreds(List<net.sourceforge.czt.z.ast.Pred> inpreds,
List<net.sourceforge.czt.z.ast.Pred> preds)
Apply addPred to a LIST of predicates.
|
protected void |
declareVar(net.sourceforge.czt.z.ast.ZName zName,
net.sourceforge.czt.z.ast.Expr expr,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds)
Adds the string representionat of
zName to the names
list and a membership of zName in the given
expression to the preds list. |
protected void |
declareVars(List<net.sourceforge.czt.z.ast.NameTypePair> vars,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds) |
protected void |
declareVars(net.sourceforge.czt.z.ast.NameSectTypeTriple triple,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds) |
protected void |
declareVars(net.sourceforge.czt.z.ast.VarDecl decl,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds)
Adds ALL the names in a VarDecl to the names/preds lists.
|
protected net.sourceforge.czt.z.ast.Signature |
getSignature(net.sourceforge.czt.z.ast.NameSectTypeTriple triple)
Type is assumed to be of PowerType of SchemaType
|
protected Map<net.sourceforge.czt.z.ast.ZName,net.sourceforge.czt.z.ast.Expr> |
getVariables(net.sourceforge.czt.z.ast.SchExpr schExpr,
Class<?> decor)
Assumes that all the declarations are VarDecls
|
protected net.sourceforge.czt.z.ast.Expr |
lookup(net.sourceforge.czt.z.ast.NameSectTypeTriple triple) |
BMachine |
makeBMachine(net.sourceforge.czt.z.ast.ZSect sect)
Translates a ZSect into a BMachine.
|
protected BOperation |
operation(net.sourceforge.czt.z.ast.NameSectTypeTriple triple) |
protected void |
print(net.sourceforge.czt.base.ast.Term term,
String section) |
protected void |
splitPrePost(net.sourceforge.czt.z.ast.Pred pred,
List<net.sourceforge.czt.z.ast.Pred> pre,
List<net.sourceforge.czt.z.ast.Pred> post)
Split a complex postcondition predicate into pre/post lists.
|
Object |
visitAxPara(net.sourceforge.czt.z.ast.AxPara para)
Adds some axiomatic definitions to a B machine.
|
Object |
visitConjPara(net.sourceforge.czt.z.ast.ConjPara para)
Ignore conjecture paragraphs.
|
Object |
visitConstDecl(net.sourceforge.czt.z.ast.ConstDecl decl) |
Object |
visitFreePara(net.sourceforge.czt.z.ast.FreePara para)
Process all free types.
|
Object |
visitFreetype(net.sourceforge.czt.z.ast.Freetype freetype)
Adds a simple free type to a B machine.
|
Object |
visitGivenPara(net.sourceforge.czt.z.ast.GivenPara para)
Adds all the given types to the 'parameters' list of a B machine.
|
Object |
visitLatexMarkupPara(net.sourceforge.czt.z.ast.LatexMarkupPara para)
Ignore Latex markup paragraphs.
|
Object |
visitListTerm(net.sourceforge.czt.base.ast.ListTerm<?> term)
Visits a list term by visiting all its children.
|
Object |
visitNarrPara(net.sourceforge.czt.z.ast.NarrPara para)
Ignore narrative paragraphs.
|
Object |
visitOptempPara(net.sourceforge.czt.z.ast.OptempPara para)
Ignore operator template paragraphs.
|
Object |
visitTerm(net.sourceforge.czt.base.ast.Term term)
This generic visit method is called whenever no other
visit method matches the current term.
|
Object |
visitUnparsedPara(net.sourceforge.czt.z.ast.UnparsedPara para)
Unparsed Z paragraphs cause the translaton to fail.
|
Object |
visitVarDecl(net.sourceforge.czt.z.ast.VarDecl decl) |
Object |
visitZDeclList(net.sourceforge.czt.z.ast.ZDeclList zDeclList) |
Object |
visitZFreetypeList(net.sourceforge.czt.z.ast.ZFreetypeList list) |
Object |
visitZParaList(net.sourceforge.czt.z.ast.ZParaList list) |
public Z2B(net.sourceforge.czt.session.SectionManager manager)
throws UnfoldException
UnfoldExceptionpublic BMachine makeBMachine(net.sourceforge.czt.z.ast.ZSect sect) throws BException, net.sourceforge.czt.session.CommandException
sect - the ZSect to be translated
BExceptionnet.sourceforge.czt.session.CommandExceptionprotected net.sourceforge.czt.z.ast.Signature getSignature(net.sourceforge.czt.z.ast.NameSectTypeTriple triple)
protected net.sourceforge.czt.z.ast.Expr lookup(net.sourceforge.czt.z.ast.NameSectTypeTriple triple)
throws net.sourceforge.czt.session.CommandException
net.sourceforge.czt.session.CommandExceptionprotected void print(net.sourceforge.czt.base.ast.Term term,
String section)
throws net.sourceforge.czt.print.util.PrintException
net.sourceforge.czt.print.util.PrintExceptionprotected Map<net.sourceforge.czt.z.ast.ZName,net.sourceforge.czt.z.ast.Expr> getVariables(net.sourceforge.czt.z.ast.SchExpr schExpr, Class<?> decor)
protected BOperation operation(net.sourceforge.czt.z.ast.NameSectTypeTriple triple) throws net.sourceforge.czt.session.CommandException
net.sourceforge.czt.session.CommandExceptionprotected void declareVar(net.sourceforge.czt.z.ast.ZName zName,
net.sourceforge.czt.z.ast.Expr expr,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds)
zName to the names
list and a membership of zName in the given
expression to the preds list.protected void declareVars(net.sourceforge.czt.z.ast.VarDecl decl,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds)
protected void declareVars(List<net.sourceforge.czt.z.ast.NameTypePair> vars, List<String> names, List<net.sourceforge.czt.z.ast.Pred> preds)
protected void declareVars(net.sourceforge.czt.z.ast.NameSectTypeTriple triple,
List<String> names,
List<net.sourceforge.czt.z.ast.Pred> preds)
throws net.sourceforge.czt.session.CommandException
net.sourceforge.czt.session.CommandExceptionprotected void addPred(net.sourceforge.czt.z.ast.Pred pred,
List<net.sourceforge.czt.z.ast.Pred> preds)
protected void addPreds(List<net.sourceforge.czt.z.ast.Pred> inpreds, List<net.sourceforge.czt.z.ast.Pred> preds)
protected void splitPrePost(net.sourceforge.czt.z.ast.Pred pred,
List<net.sourceforge.czt.z.ast.Pred> pre,
List<net.sourceforge.czt.z.ast.Pred> post)
public Object visitTerm(net.sourceforge.czt.base.ast.Term term)
visitTerm in interface net.sourceforge.czt.base.visitor.TermVisitor<Object>public Object visitListTerm(net.sourceforge.czt.base.ast.ListTerm<?> term)
visitListTerm in interface net.sourceforge.czt.base.visitor.ListTermVisitor<Object>public Object visitZParaList(net.sourceforge.czt.z.ast.ZParaList list)
visitZParaList in interface net.sourceforge.czt.z.visitor.ZParaListVisitor<Object>public Object visitGivenPara(net.sourceforge.czt.z.ast.GivenPara para)
visitGivenPara in interface net.sourceforge.czt.z.visitor.GivenParaVisitor<Object>public Object visitFreePara(net.sourceforge.czt.z.ast.FreePara para)
visitFreePara in interface net.sourceforge.czt.z.visitor.FreeParaVisitor<Object>public Object visitZFreetypeList(net.sourceforge.czt.z.ast.ZFreetypeList list)
visitZFreetypeList in interface net.sourceforge.czt.z.visitor.ZFreetypeListVisitor<Object>public Object visitLatexMarkupPara(net.sourceforge.czt.z.ast.LatexMarkupPara para)
visitLatexMarkupPara in interface net.sourceforge.czt.z.visitor.LatexMarkupParaVisitor<Object>public Object visitFreetype(net.sourceforge.czt.z.ast.Freetype freetype)
visitFreetype in interface net.sourceforge.czt.z.visitor.FreetypeVisitor<Object>public Object visitAxPara(net.sourceforge.czt.z.ast.AxPara para)
visitAxPara in interface net.sourceforge.czt.z.visitor.AxParaVisitor<Object>public Object visitZDeclList(net.sourceforge.czt.z.ast.ZDeclList zDeclList)
visitZDeclList in interface net.sourceforge.czt.z.visitor.ZDeclListVisitor<Object>public Object visitConjPara(net.sourceforge.czt.z.ast.ConjPara para)
visitConjPara in interface net.sourceforge.czt.z.visitor.ConjParaVisitor<Object>public Object visitNarrPara(net.sourceforge.czt.z.ast.NarrPara para)
visitNarrPara in interface net.sourceforge.czt.z.visitor.NarrParaVisitor<Object>public Object visitOptempPara(net.sourceforge.czt.z.ast.OptempPara para)
visitOptempPara in interface net.sourceforge.czt.z.visitor.OptempParaVisitor<Object>public Object visitUnparsedPara(net.sourceforge.czt.z.ast.UnparsedPara para)
visitUnparsedPara in interface net.sourceforge.czt.z.visitor.UnparsedParaVisitor<Object>public Object visitVarDecl(net.sourceforge.czt.z.ast.VarDecl decl)
visitVarDecl in interface net.sourceforge.czt.z.visitor.VarDeclVisitor<Object>Copyright © 2003–2016 Community Z Tools Project. All rights reserved.