From: Clark C. E. <cc...@cl...> - 2004-09-12 17:32:30
|
one more alternative, - name: is-private-rule detail: we loosen the %TAG declaration to allow for ! !! and !handle! so that they expand only to the !handle! example: %TAG ! ! %TAG |! tag:yaml.org,2002: --- - 23 # NULL - ! 23 # ! - !bing # !bing - !! # tag:yaml.org,2002: - !!str # tag:yaml.org,2002:bing ... impact: - well, since NULL tag is totally configurable meaning of application, no reason why app can't use ! to map to a string; but alas this is a configuration issue - !! becomes an undefined tag, so not really useable This one is perhaps the simplest, and most consistent. However, it means that the tag ! would be changed to tag:yaml.org,2002:str in the 'specification' stage. Cheers, Clark On Sun, Sep 12, 2004 at 01:20:57PM -0400, Clark C. Evans wrote: | this is a review of options to satisfy a goal to extend/modify #11 | to map ! to tag:yaml.org,2002:str ; of course, if you don't like the | idea of getting rid of style distinction, this is all moot. | | --- | - | name: handle-prefix-alternative | detail: | we extend the %tag declaration syntax, | %tag handle prefix alternate | see the lead post for this thread for details. if | the specific part is missing, then alternate is used | example: | %tag ! !prefix: !alternative | --- | - ! # !alternative | - !bing # !prefix:bing | impact: | - straightforward simple rule | - allows ! to map to tag:yaml.org,2002:str | - allows ! to be private tags | - perhaps unexpected results, but trainable | - | name: handle-prefix-default | detail: | almost like handle-prefix-alternative only that | a missing specific, implies prefix+deffault used | example: | %tag ! !prefix: default | --- | - ! # !prefix:default | - !bing # !prefix:bing | impact: | - straightforward simple rule | - perhaps more consistent than handle-prefix-alternative | - either one of the following: | a) !private tags, but !! for tag:yaml.org,2002:str | b) !!private tags and ! for tag:yaml.org,2002:str | - | name: fixed-cooking | detail: | we leave the %tag mechanism as-is. and provide two simple | rules: | - ! is cooked to tag:yaml.org,2002:str | - !! is cooked to tag;yaml.org,2002:null | - !handle! remains an error | example: | --- | - ! # tag:yaml.org,2002:str | - !bing # !prefix:bing | impact: | - very simple rule | - allows ! to map to tag:yaml.org,2002:str | - allows ! to be private tags | - is not changable by user, no equivalent mechansim for !handle! | - | name: kind based defaults | detail: | similar to fixed-cooking, only that a handle w/o a specific | component is mapped to the prefix, plus the name of the kind. | example: | %tag ! ! # default rule | %tag !! tag:yaml.org,2002: # default rule | %pre !handle! tag:clarkevans.com,2002: | --- | - ! # !scalar | - ! {} # !mapping | - !bing # !bing | - !! # tag:yaml.org,2002:scalar | - !!bing # tag:yaml.org,2002:bing | - !handle! # tag:clarkevans.com,2002:scalar | - !handle!bing # tag:clarkevans.com,2002:bing | variant: | A variant of this proposal makes ! the yaml prefix, and !! | private tags. This has the advantage of keeping YAML 1.0 | semantics, and also allowing ! to be tag:yaml.org,2002:scalar | impact: | - simple, but somewhat magical | - keeps ! as private, but ! | - allows ! to map to tag:yaml.org,2002:scalar (but not str) | - | name: two-directives | detail: | Keep the %TAG director from #11, but rename it to %PRE, | add a new %TAG that is a simple match/replace version. | The rules then match on %TAG first, and for those that | have not applied, use %PRE | example: | %PRE ! ! # default rule | %PRE !! tag:yaml.org,2002: # default rule | %TAG ! tag:yaml.org,2002:str # default rule | %TAG !! tag:yaml.org,2002:null # default rule | %PRE !handle! tag:clarkevans.com,2002: | %TAG !handle!exception tag:yatl.org,2002:exception | --- | - ! # tag:yaml.org,2002:str | - !bing # !bing | - !! # tag:yaml.org,2002:null | - !!bing # tag:yaml.org,2002:bing | - !handle! # tag:yatl.org,2002:exception | - !handle!bing # tag:clarkevans.com,2002:bing | impact: | - two directives; but both are farily simple | - interactions of the directives could be confusing | - perhaps too much flexibility? | - allows ! to map to tag:yaml.org,2002:str | - allows ! to be private tags | - | name: wild tags | detail: | Something simlar to what T.Onoma had proposed, immediately | in is reply to my first post in this thread. A limited | version of this is two-directives. | example: | (similar to two-tags, but uses !* to mean %PRE ) | | Well, that's the options I've seen thus far. | | Clark | | | ------------------------------------------------------- | This SF.Net email is sponsored by: YOU BE THE JUDGE. Be one of 170 | Project Admins to receive an Apple iPod Mini FREE for your judgement on | who ports your project to Linux PPC the best. Sponsored by IBM. | Deadline: Sept. 13. Go here: http://sf.net/ppc_contest.php | _______________________________________________ | Yaml-core mailing list | Yam...@li... | https://lists.sourceforge.net/lists/listinfo/yaml-core -- Clark C. Evans Prometheus Research, LLC. http://www.prometheusresearch.com/ o office: +1.203.777.2550 ~/ , mobile: +1.203.444.0557 // (( Prometheus Research: Transforming Data Into Knowledge \\ , \/ - Research Exchange Database /\ - Survey & Assessment Technologies ` \ - Software Tools for Researchers ~ * |