Closed MattWindsor91 closed 7 years ago
@BenSimner is this one you could check? If not then @septract is leading on Grasshopper so maybe this would be in scope for him to check
This all looks good to me - @CaptainHayashi please go ahead and merge if you're happy.
This PRQ changes the AST and internal representation of symbolic variables so that tokens of the form
#<int>
are parsed and stored as argument placeholders. This allows the Starling pretty printer, among other things, to interpolate arguments into those positions.The pretty printer representation of a symbol
%{foo #1 bar #2 baz}(x, y)
has now changed toThis change will make it much easier immediately to work with symbolic proofs, but is mainly here to facilitate Grasshopper.
Summary of changes:
string
s butSymbolicSentences
, lists of eitherstring
components or argument references.Func
s but are a new typeSymbolic<'Arg>
.Sym<'R>
is now a union of'R
andSymbolic<Expr<Sym<'R>>>
.There is currently no way to represent a
#
in a Starling symbol. If this becomes a problem we can change the parser to interpret##
as a#
.