Commit Graph

18 Commits

Author SHA1 Message Date
Brian Picciano
82e74cb55f Improvements to gg.Graph
An empty `Value` is now valid.

It is now possibly to change the edgeVal of an OpenEdge. It feels like
this shouldn't be necessary, but it greatly simplifies the decoding
logic to have this.

A tuple which is created with just one input edge, and with no edge
value of its own, is now automatically simplified to just that input
edge.
2021-12-27 14:22:56 -07:00
Brian Picciano
e2ffc37ddc Don't treat newlines specially
For MVP newlines aren't going to be used as a syntax terminator, they're
just going to be whitespace. Otherwise the decoding logic gets way more
complicated.
2021-12-27 14:22:56 -07:00
Brian Picciano
1e30ad6959 Strip out most of the functionality of gg.Graph
`gg.Graph` has been reworked in its internal functionality, to more
closely match the capability of a purely stack-based implementation. The
current implementation is _very_ inefficient, however. Tests have been
deliberately left pretty sparse, as I expect the internals to continue
to change significantly.
2021-12-27 10:11:07 -07:00
Brian Picciano
e4bdeb8797 Implement lexer for new syntax 2021-12-26 14:49:43 -07:00
Brian Picciano
b1831a670f End comments with periods 2021-12-26 14:49:22 -07:00
Brian Picciano
f530cb481a rename Junction to Tuple, update syntax, rename Null to ZeroGraph 2021-08-26 21:26:24 -06:00
Brian Picciano
b906697151 gg: rename Walk to Iter, and implement Disjoin 2018-06-07 02:21:44 +00:00
Brian Picciano
c16fc00bf7 notes for gim on graph drawing algo, and some TODOs 2018-06-02 08:45:03 +00:00
Brian Picciano
65933a004d gim: properly sort outgoing edges along the from box 2018-06-02 06:52:42 +00:00
Brian Picciano
905b182467 gim: make incoming edges separate along the drawn rectangle edge, instead of all overlapping onto the same point 2018-06-02 06:51:53 +00:00
Brian Picciano
bd650dfc08 implement json marshaling and unmarshaling (TODO needs tests) 2018-01-23 13:32:22 +00:00
Brian Picciano
e52befb7ed refacctor gg to use Value instead of Identifier, which will make serializing more straightforward, and reduces some complexity of the code besides 2018-01-21 15:39:25 +00:00
Brian Picciano
754b75407a integrate constraint engine into determining box positioning 2017-12-03 12:38:53 -07:00
Brian Picciano
79a171323d implement basic constraint engine in gim, which will be used to determine positioning of vertices 2017-11-25 14:33:00 -07:00
Brian Picciano
286c2fbb35 use gg.Str instead of gim.str 2017-11-24 11:05:58 -07:00
Brian Picciano
5ab1d4c7f0 implement gg.Graph.Walk 2017-11-05 09:57:57 -07:00
Brian Picciano
cae3116424 rename gg.HalfEdge to gg.OpenEdge 2017-11-05 09:11:05 -07:00
Brian Picciano
d700390b54 move gg into root, it's not really subject to the lang 2017-11-02 14:59:31 -06:00