Hi,
I am afraid that the failed line number is about the granularity of
error information available.
For finer location info (column number) the parser would need to track
the column; currently it
doesn't.
Since ⎕FX is a system functions (which can be called many times) there
is no interface to
provide the error cause. I could create a static member of class Parse
that stores the last
parse error and/or its source location.
Note that the majority of parse errors in ∇ and ⎕FX are bad function
headers. There are only a few
errors detected on the function body - they typically occur when a
function is executed and not when
it is defined.
/// Jürgen
On 02/14/2014 07:05 AM, Elias Mårtenson wrote:
Thank you. I did not realise that the number indicated the line where
the error occurred. I have updated the Emacs mode to display an error
message and highlight the line where the error occurred now.
Is there a way to get more detailed information as to what the error
was? Right now I simply display "Parse error" but it would be nice if
it was a bit more precise.
Regards,
Elias
On 14 February 2014 01:35, Juergen Sauermann
<[email protected] <mailto:[email protected]>>
wrote:
Hi Elias,
not on my machine:
⎕FX 'foo[x]' 'x'
1
)fns
Could it be that you had foo defined earlier?
The syntax error is then due to a niladic function called with an axis
(which is no a valid pattern in APL).
The return value of 1 is the index of the line that has caused the
error (foo[x]).
/// Jürgen
On 02/07/2014 01:57 PM, Elias Mårtenson wrote:
When I try to define a function that takes no arguments, but does
include an axis argument, the normal function editor complains:
*∇foo[x]*
bad editor command '∇foo[x]' : problem 'Bad function header
at Nabla.cc:495'
DEFN ERROR
∇foo[x]
^
However, if I try to define the same function using ⎕FX, it gets
defined:
*⎕FX 'foo[x]' 'x'*
1
*)fns*
EMACS_NATIVE bar foo
But, it cannot be called:
*foo[1]*
1
SYNTAX ERROR
foo[1]
^ ^
Regards,
Elias