Class Pos.Printable

java.lang.Object
org.smtlib.impl.Pos.Posable
org.smtlib.impl.Pos.Printable
All Implemented Interfaces:
INode, IPos.IPosable
Direct Known Subclasses:
Command, Pos.AbstractExpr, Response.AssertionsResponse, Response.AssignmentResponse, Response.Error, Response.ProofResponse, Response.Seq, Response.UnsatAssumptionsResponse, Response.UnsatCoreResponse, Response.ValueResponse, Script, Sexpr, SMTExpr.Attribute, SMTExpr.Binding, SMTExpr.Constructor, SMTExpr.Datatype, SMTExpr.Declaration, SMTExpr.FunctionDeclaration, SMTExpr.Keyword, SMTExpr.Logic, SMTExpr.MatchCase, SMTExpr.Pattern, SMTExpr.PatternTerms, SMTExpr.Selector, SMTExpr.SortDeclaration, SMTExpr.Theory, Sort, Sort.Abbreviation, Sort.ErrorDefinition, Sort.Family
Enclosing class:
Pos

public abstract static class Pos.Printable extends Pos.Posable implements INode
A Posable that also implements INode, with toString() delegating to Printer. This toString() exists purely for debugger/IDE display convenience - it must never be relied on for program logic or real output. Production code that needs to render a node must go through IPrinter/Printer explicitly (e.g. smtConfig.defaultPrinter.toString(...)), not this method.

A bare AST node has no reachable Configuration of its own (see issue #22 -- Printer's formatting rules, e.g. string-literal quoting, are per-Configuration, not global), so this constructs a fresh, throwaway default Configuration purely to drive formatting here. It's never shared or stored, so this can't reintroduce the static-state leak #22 fixed elsewhere -- it's simply "format using default rules," which is all a debugger/IDE display can reasonably do without knowing which real Configuration actually owns this node.

  • Constructor Details

    • Printable

      public Printable()
  • Method Details