Commit Graph

165 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
066d5a8319 make into a module 2021-08-26 21:27:47 -06:00
Brian Picciano
f530cb481a rename Junction to Tuple, update syntax, rename Null to ZeroGraph 2021-08-26 21:26:24 -06:00
Brian Picciano
3f28c60ab8 Remove a bunch of old code, update the README 2021-08-26 21:25:39 -06:00
Brian Picciano
fed2c35868 back from the dead, some syntax thoughts 2020-10-05 21:17:12 -06:00
Brian Picciano
ad1e99585b graph: refactor Graph into being an interface 2018-10-04 17:33:19 -04:00
Brian Picciano
16f2b1bbde graph: make Edge into an interface 2018-10-04 15:24:17 -04:00
Brian Picciano
a5b3b7acd0 graph: fix TestVisitBreadth test to ensure edge is to a brand new value during a newRank action 2018-10-04 15:02:12 -04:00
Brian Picciano
0fe15409a8 graph: implement VisitBreadth/VisitDepth 2018-09-25 17:26:11 -04:00
Brian Picciano
b51935fcd1 graph: implement Join/Disjoin 2018-09-25 13:58:50 -04:00
Brian Picciano
20b2a80a3c graph: refactor to use Node type 2018-08-21 14:46:17 -04:00
Brian Picciano
9534ff5c13 graph: don't give values to edges, that can be accomplished by a transformation layer later 2018-08-18 14:06:43 -04:00
Brian Picciano
c1bdb46623 graph: implement SubGraph and Equal 2018-08-18 13:51:38 -04:00
Brian Picciano
91c0629377 graph: add edgeIndex's to Graph to speed up EdgeValues call 2018-08-17 11:08:26 -06:00
Brian Picciano
132a50039b graph: implemented smaller and simpler version of gg, which gg can then be built on top of 2018-08-14 16:28:11 -04:00
Brian Picciano
c277bab368 gim: move view code into its own package 2018-06-08 02:04:27 +00:00
Brian Picciano
0a6526d2c3 gim: add terminal.Buffer.DrawBufferCentered 2018-06-08 00:17:49 +00:00
Brian Picciano
0b36e4ec37 gim: make rounder a global in geo, kinda gross but simplifies a lot of things 2018-06-07 22:50:01 +00:00
Brian Picciano
ef48a2d708 gim: move line drawing code into terminal. drawing the line body is kind of busted, but whatever 2018-06-07 22:35:18 +00:00
Brian Picciano
a6d540f1fb gim: refactor positioning and drawing code to take advantage of terminal buffers more 2018-06-07 03:25:40 +00:00
Brian Picciano
b906697151 gg: rename Walk to Iter, and implement Disjoin 2018-06-07 02:21:44 +00:00
Brian Picciano
efa7319555 gim: give terminal.LineStyle Perp and Arrow fields 2018-06-06 06:30:39 +00:00
Brian Picciano
97be10b03e gim: modify terminal to use a buffer, which will allow for much more complex behavior later 2018-06-05 07:56:50 +00:00
Brian Picciano
018e84575f more notes for gim 2018-06-03 04:25:32 +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
1dc53518af gim: draw the text of the edge 2018-06-02 06:52:57 +00:00
Brian Picciano
65933a004d gim: properly sort outgoing edges along the from box 2018-06-02 06:52:42 +00:00
Brian Picciano
faf41c7386 gim: make outgoing edges also be split along the rectangle 2018-06-02 06:52:24 +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
ed8fa31104 more notes 2018-03-03 16:15:13 +00:00
Brian Picciano
58c053782e took notes on how compilers compile basic c programs, and how they get run via libc 2018-01-29 14:44:34 +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
7c7502b42f move a bunch of code into view, which holds onto a bunch of the drawing logic and settings now 2017-11-23 12:19:32 -07:00
Brian Picciano
f68bb4d8a2 do a lot of work on gim to get it sort of rendering gg.Graphs 2017-11-19 14:39:56 -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
11328fa76c drawing edges in gim, and split out some parts into their own packages 2017-11-04 15:29:15 -06:00
Brian Picciano
b4bf8f6c5a basic box drawing and moving in gim 2017-11-02 16:45:10 -06:00
Brian Picciano
d700390b54 move gg into root, it's not really subject to the lang 2017-11-02 14:59:31 -06:00
Brian Picciano
72099ccf22 some old wip shit 2017-11-02 14:57:57 -06:00
Brian Picciano
305642b5a4 older change to sandbox/graphs.md 2017-11-02 14:57:49 -06:00
Brian Picciano
0b2b53ef56 implement gg.Graph methods Union, DelValueIn, and Values 2017-10-22 11:39:32 -06:00