Conceptually, at least (with a little work), jtatco could do a
lookahead of some sort, for this kind of thing (like if an @: is the
next unparsed token, let it modify jatco's a, advancing the parser
state to match).

-- 
Raul

On Thu, Nov 10, 2022 at 6:56 PM Henry Rich <henryhr...@gmail.com> wrote:
>
> But the parser CAN'T look ahead.  The parsing rules specify that
>
> a@b@c
>
> is executed as
>
> (a@b)@c
>
> With @: it is true that the operations associate, but the parser doesn't
> look for that.
>
> Henry Rich
>
> On 11/10/2022 6:53 PM, bill lam wrote:
> > I didn't get it.
> >
> > is parsed as
> >
> > (}:@:;)@:(,&','&.>)
> >
> > If parser can look ahead, it should see
> >
> > }:@:(;@:(,&','&.>))
> >
> > If it can't then writing it as
> >
> > (;@:(,&','&.>))
> >
> > Provides no new information for parser to recognize special code.
> >
> > On Thu, 10 Nov 2022 at 10:34 PM Henry Rich <henryhr...@gmail.com> wrote:
> >
> >> Thanks Bill.  I just want to note a fine point of special code:
> >>
> >> }:@:;@:(,&','&.>)
> >>
> >> is parsed as
> >>
> >> (}:@:;)@:(,&','&.>)
> >>
> >> Better is
> >>
> >> }:@:(;@:(,&','&.>))
> >>
> >> because then the interpreter sees the form
> >>
> >> ;@:(,&','&.>)
> >>
> >> which says 'do something inside the boxes and then immediately join the
> >> contents'.
> >>
> >> Armed with the knowledge, the interpreter can leave the contents of the
> >> boxes virtual (something it normally is not allowed to do) until they
> >> are joined.
> >>
> >> Henry Rich
> >>
> >>
> >>
> >> On 11/10/2022 7:05 AM, bill lam wrote:
> >>> It should be a bug that already fixed in the latest j904 beta.  You may
> >>> workaround it by replace {: with its equivalent, eg
> >>>
> >>>      >(([:,&','each}:),{.@:(_1&{.));:'cat dog mouse'
> >>> cat,
> >>> dog,
> >>> mouse
> >>>
> >>> That said, I would usually do it this way
> >>>      }:@:;@:(,&','&.>);:'cat dog mouse'
> >>> cat,dog,mouse
> >>>
> >>>
> >>> On Thu, Nov 10, 2022 at 4:42 PM esal <esa.li...@gmail.com> wrote:
> >>>
> >>>> Hi everybody
> >>>>
> >>>> I have an old verb that transforms a boxed array containing database
> >> table
> >>>> column names into a string suitable for copying and pasting into a SQL
> >>>> SELECT statement. It crashes J903.
> >>>>
> >>>> Here is a simplified demonstration.
> >>>>
> >>>>
> >>>>>      JVERSION
> >>>>>
> >>>>> Engine: j903/j64avx2/windows
> >>>>>
> >>>>> Release-b: commercial/2022-01-28T04:09:50
> >>>>>
> >>>>> Library: 9.03.08
> >>>>>
> >>>>> Qt IDE: 1.9.5s/5.15.2(5.15.2)
> >>>>>
> >>>>> Platform: Win 64
> >>>>>
> >>>>> Installer: J903 install
> >>>>>
> >>>>> InstallPath: c:/j903
> >>>>>
> >>>>> Contact: www.jsoftware.com
> >>>>>
> >>>>> NB. this works
> >>>>>
> >>>>> ]aux=.;:'cat dog mouse'
> >>>>>
> >>>>> ┌───┬───┬─────┐
> >>>>>
> >>>>> │cat│dog│mouse│
> >>>>>
> >>>>> └───┴───┴─────┘
> >>>>>
> >>>>>> (([:,&',' each}:),{:)aux
> >>>>> cat,
> >>>>>
> >>>>> dog,
> >>>>>
> >>>>> mouse
> >>>>>
> >>>>>
> >>>>> NB. this crashes J
> >>>>>
> >>>>>> (([:,&',' each}:),{:);:'cat dog mouse'
> >>>>> Best Regards,
> >>>> Esa
> >>>> ----------------------------------------------------------------------
> >>>> For information about J forums see http://www.jsoftware.com/forums.htm
> >>>>
> >>> ----------------------------------------------------------------------
> >>> For information about J forums see http://www.jsoftware.com/forums.htm
> >> ----------------------------------------------------------------------
> >> For information about J forums see http://www.jsoftware.com/forums.htm
> >>
> > ----------------------------------------------------------------------
> > For information about J forums see http://www.jsoftware.com/forums.htm
>
> ----------------------------------------------------------------------
> For information about J forums see http://www.jsoftware.com/forums.htm
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to