Hi Ryan, I can't reproduce the behaviour you describe. What version are you using? (++ |syntax error | (++ (@ |syntax error | (@ (@: |syntax error | (@: (\\. |syntax error | (\\. ]a=. 1 + 2 3 ]a=. (1 + 2 |syntax error | ]a=:(1+2 ]a =. (1 + 2 + |syntax error | ]a=:( 1+2+ JVERSION Engine: j807/j64/linux Release: commercial/2018-10-04T15:00:41 Library: 8.07.20 Platform: Linux 64 Installer: J807 install InstallPath: /opt/j/j64_807 Contact: www.jsoftware.com
On Wed, Dec 5, 2018 at 5:50 PM 'Ryan H' via General <[email protected]> wrote: > Hi everyone, > > While randomly entering expressions, I came across strange behavior in the > parser. An unmatched left parentheses followed by certain parts of speech > will not cause a syntax error. Instead, nothing will be printed: > > (++ NB. these all print nothing > (@ > (@: > (\\. > ]a =. 1 + 2 NB. working correctly > 3 > ]a =. (1 + 2 NB. prints nothing > ]a =. (1 + 2 + NB. errors > |syntax error > | ]a=:(1+ 2+ > > As you can see from the last example, though, syntax errors are still > thrown when the expression on the right is invalid. But, if the expression > on the right is valid, the left parentheses seems to "eat" it and cause the > whole sentence to do nothing. > > I don't know the internals of the parser, but the "trace" utility seems to > confirm that something is wrong here: > > trace '(++' > --------------- 6 Bident ----- > + > + > + + > |assertion failure: parse > | *(mark+cavn,0)bwand>(<1 2;0){stack['stack must be empty or has a > single noun, verb, adverb, or conj' > > I hope this is helpful. J is a great language and I want to see it get > even better. > > Best, > Ryan > ---------------------------------------------------------------------- > For information about J forums see http://www.jsoftware.com/forums.htm ---------------------------------------------------------------------- For information about J forums see http://www.jsoftware.com/forums.htm
