libera/#sicl - IRC Chatlog
Search
5:42:00
beach
The Trucler conditions NO-... were pretty silly. Trucler itself did not use them at all, and SICL CST-to-AST signaled them (instead of its own) when it saw a NIL value returned form Trucler DESCRIBE-...
5:44:26
beach
ecraven: For Second Climacs, we use objects called WADs. They represent some top-level expression, or some top-level comment. For an expression, the children of a WAD are other expressions or comments (or other skipped material). We use these objects for various editor commands like commands that involve expressions.
5:45:09
ecraven
beach: do you differentiate between ";;;;" and ";;" and so on, or just have a generic "comment" class?
5:51:52
ecraven
I'm working a lot with kubernetes, and I'd like to deal with yaml files in a better way. however, to do what I need to do, I'll also need to process comments. Almost all the yaml parsers in most languages just completely drop them in the scanner/lexer, so I was wondering about how to best deal with them.
5:52:36
ecraven
I'm wondering whether the best way would be to associate them (via a hashmap) with the list structure that is read.. so you get a "normal" tree back, but you can access the comments if you want
5:53:15
ecraven
beach: main problem is, I *don't* want some non-list-representation of the parsed data
5:53:58
ecraven
this seems like a very similar problem to dealing with comments in s-expression source code ;)
6:00:30
beach
As I recall, SBCL uses a trick for associating source positions with symbols and such. It uses the position of the immediate surrounding CONS. Perhaps you could use something like that for comments?
6:01:52
ecraven
the problem I see is something like [ "foo", # comment\n "bar", # other comment\n] where the comments are associated (in my mind, the yaml spec says you must drop them :P) directly with "scalars"
6:05:05
beach
I recently created a library named Clearcut that contains functions like FIRST, REST, ATOM, CONS, LIST, NULL, that trampoline to generic functions depending on the exact representation.
6:05:29
beach
But yes, you then could not use standard list operators other than the ones provided by the library.
6:06:10
beach
I do want to include things like MAPCAR, DESTRUCTURING-BIND, etc. some time in the future.