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
Brian Picciano
9b577c0df8
initial implementation of immutable Graph
2017-10-21 16:54:40 -06:00