World: r3wp
[REBOL Syntax] Discussions about REBOL syntax
older newer | first last |
Ladislav 16-Feb-2012 [101] | Why did you put #"'" into the c-word definition? |
Steeve 16-Feb-2012 [102x8] | I forgot to add #"'" in the charset. c-word: complement union charset "()[]^"{}/;<>,\#$%:@^@" whitespace |
Good, you saw it | |
you're fast | |
I also forgot to add the special cases for + and - | |
c-word: complement union charset "()[]^"{}/;<>,\#$%:@^@" whitespace word-syntax: [ [#"." | #"+" | #"-" | not #"'"] c-word any [c-word | digit] | #"." | #"+" | #"-" ] | |
Thanks to your notes | |
Well it's more complex than that. +' and -' are invalid | |
Maybe word-syntax: [ [#"." | #"+" not #"'"| #"-" not #"'"| not #"'"] c-word any [c-word | digit] | #"." | #"+" | #"-" ] | |
Ladislav 16-Feb-2012 [110] | lots of exceptions, indeed |
Steeve 16-Feb-2012 [111] | Should that be enforced with [termination] also ? |
Ladislav 16-Feb-2012 [112x2] | Well, this way it would accept some unacceptable strings, like "." in ".1" e.g. |
However, the TERMINATION can be added to the whole word syntax combined from the partial syntax cases | |
Steeve 16-Feb-2012 [114x2] | Well there are some annoyng cases when values are stuck together but valids. >> [a< 1] == [a < 1] |
termination can't be used to the whole | |
Ladislav 16-Feb-2012 [116] | yes, needs some care |
Steeve 16-Feb-2012 [117] | I need a pause :-) |
Ladislav 16-Feb-2012 [118x2] | however, your example looks to be R2-specific |
good night | |
Steeve 16-Feb-2012 [120x2] | gn |
last attempt for tonight word-syntax: [ [#"." | #"+" not #"'" | #"-" not #"'" | not #"'" and c-word] [ c-word any [c-word | digit] | termination ] ] Too obfuscated maybe Feel free to go on anyone | |
BrianH 16-Feb-2012 [122x4] | Word syntax (for R3), in a comment here: http://issue.cc/r3/1302 |
It doesn't handle the other word types yet, so it needs work. Some of the syntax bug tickets came from that. | |
When it comes to things like word syntax, the errors raised for bad syntax and the particular cases where they are raised need to be part of the rules. | |
In a full syntax description, some of those charsets would be named differently of course. | |
Steeve 17-Feb-2012 [126x3] | You raise a good question Brian. Should the rules emit their own errors ? I guess the intent is to keep them light for now. If an error occurs, the parsing just stop. Another guess is that alternative rules (eg. inside value-syntax) should be kept order independent when possible (with the drawback that they are slightly more convoluted than necessary). |
last but not least word-char: complement union charset "()[]^"{}/;<>,\#$%:@^@" whitespace word-ext: [ word-char any [word-char | digit] [and [#"<" | #">"] | termination] ] word-syntax: [ not sign not #"." not #"'" word-ext | #"." [and [#"<" | #">"] | termination] | #"." word-ext | sign termination | sign not #"'" word-ext | more-less-word ] | |
grumpffff, still missing the cases with prefix [+.] and [-.] word-syntax: [ not sign not #"." not #"'" word-ext | #"." [and [#"<" | #">"] | termination] | #"." word-ext | sign termination | sign not #"'" opt #"." word-ext ; <--- there | more-less-word ] | |
Ladislav 17-Feb-2012 [129] | I committed a slightly different variant (but based on your findings as well). Could you (or other volunteers) check it, please? |
Steeve 17-Feb-2012 [130] | Remaining problems with [termination] in word-syntax. When a word is stuck with a less-word or a tag (R2 and R3) a< == [a <] valid a<= == [a <=] valid a<> == [a <>] valid a<< == [a <<] valid a<tag> == [a <tag>] valid a>= invalid a> invalid a>> invalid IMO, t's enough to check if the following char is #"<" only word-syntax: [ slash-word termination | more-less-word termination | opt sign [#"." | not #"'"] not digit any word-char [termination | and #"<"] ] |
Ladislav 17-Feb-2012 [131] | a< == [a <] - this does not work in R3 |
Steeve 17-Feb-2012 [132x2] | ???? it's working there |
>> system/version == 2.100.95.3.1 | |
Ladislav 17-Feb-2012 [134] | >> system/version == 2.100.111.3.1 |
Steeve 17-Feb-2012 [135x2] | Humm... a bit old, well with the last version you're true |
but, it remains a problem when followed by a tag | |
Ladislav 17-Feb-2012 [137x3] | A112 (not released) is reported to have other improvements related to get-words and set-words |
remains a problem when followed by a tag - indeed, needs adjustment then | |
A question for Brian: do you think the case: load "a<a>" ; == [a <a>] shall be mentioned in CC? (and, eventually, where?, a new ticket or an old one?) | |
Steeve 17-Feb-2012 [140] | Question: Why #"/" is in termination-char ? (termination-char: union whitespace charset "()[]^"{}/^@;" ) |
Ladislav 17-Feb-2012 [141] | That is because #"/" is a separator in paths |
Steeve 17-Feb-2012 [142] | well it's a problem for the other datatypes which use [termination] |
Ladislav 17-Feb-2012 [143] | example? |
Steeve 17-Feb-2012 [144x2] | example: word-syntax with the current ruke a word can be terlinated with #"/' |
*rule | |
Ladislav 17-Feb-2012 [146] | yes, but that is not a problem |
Steeve 17-Feb-2012 [147] | *terminated/followed |
Ladislav 17-Feb-2012 [148] | (is it?) |
Maxim 17-Feb-2012 [149] | >> hh/ ** Syntax Error: Invalid path -- hh/ ** Near: (line 1) hh/ |
Ladislav 17-Feb-2012 [150] | Yes, but that is not a problem for the word, it is an invalid path |
older newer | first last |