[jawsscripts] Re: New import compiler directive

  • From: "John Martyn" <johnrobertmartyn@xxxxxxxxx>
  • To: <jawsscripts@xxxxxxxxxxxxx>
  • Date: Wed, 14 Mar 2012 10:34:38 -0700

Gotcha, that explains a lot. Besides, I use the variant to get values from
functions instead of using the blasted JSD file.
John

-----Original Message-----
From: jawsscripts-bounce@xxxxxxxxxxxxx
[mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Andrew Hart
Sent: Wednesday, March 14, 2012 4:51 AM
To: jawsscripts@xxxxxxxxxxxxx
Subject: [jawsscripts] Re: New import compiler directive

John,

Let me try and give it a go.

Suppose that myscripts.jss contains the line

Include "b.jsb"

and b.jss contains

Include "a.jsb"

and a.jsb includes a function declaration like

String function GiveMeAString()


Now, if myscripts.jss wants to make a call to GiveMeAString(), you're going
to get a compiler error because, while the compiler has looked for and
loaded jsd files corresponding to myscripts.jss and b.jsb, it has not done
so for a.jsb.
Consequently, it assumes that GiveMeAString returns an Int and this will
result in a type mismatch error.
This problem appears to be rectified by explicitly telling the compiler to
load declarations for a.jsb with

Import "a.jsd"

Hth,
Andrew.

On 14/03/2012 4:11 AM, John Martyn wrote:
> I don't get it. Could you explain a little more?
> Thanks,
> John
> 
> -----Original Message-----
> From: jawsscripts-bounce@xxxxxxxxxxxxx 
> [mailto:jawsscripts-bounce@xxxxxxxxxxxxx] On Behalf Of Doug Lee
> Sent: Tuesday, March 13, 2012 8:42 PM
> To: jawsscripts@xxxxxxxxxxxxx
> Subject: [jawsscripts] Re: New import compiler directive
> 
> A scan through jss files shows examples in several. I'd say the 
> directive would be useful if you're calling a function you know exists 
> among the jsb files you're loading but the compiler doesn't get it. An 
> example would be if a.jss Uses b.jss which calls a function from 
> a.jss. This directivve seems to be new in JAWS 13.
> 
> Cool idea anyway.
> 
> On Wed, Mar 14, 2012 at 12:13:09AM -0300, Andrew Hart wrote:
> Hi folks,
> 
> I stumbled across the following line of code in QuickSet.jsd recently, 
> and a rather terse explanation buried in FileIO.jss.  However, it 
> seems to be undocumented in the FSDN.  Grepping the all users 
> settings\enu directory, There are a pile of scripts that use the Import
directive.
> 
> I can't say I truely grok it, but it appears that the Import command 
> is used for getting the Script Manager to load up function 
> declarations (from jsd
> files) that are deeply nested in the script binary load scope.
>  I always thought that the Script Manager automatically loaded the jsd 
> files associated with binaries referenced using the Use directive.  I 
> am assuming that Import is needed because the compiler isn't actually 
> clever enough to recursively scan through "Used" jsb files to find all 
> the associated jsd files necessary to provide all the required 
> function declarations, in case the top level script file calls a 
> function buried
> 2 or more levels down in the scope (excluding functions in default.jss 
> whose documentation one would expect the Script Manager to always have on
hand).
> 
> Is anyone else aware of this or have I just been living on another 
> planet for the last few years?
> 
> Cheers,
> Andrew.
> 
> 
> __________???
> 
> View the list's information and change your settings at 
> //www.freelists.org/list/jawsscripts
> 
> --
> Doug Lee, Senior Accessibility Programmer SSB BART Group - 
> Accessibility-on-Demand mailto:doug.lee@xxxxxxxxxxxxxxxx 
> http://www.ssbbartgroup.com "While they were saying among themselves 
> it cannot be done, it was done." --Helen Keller __________o?=
> 
> View the list's information and change your settings at 
> //www.freelists.org/list/jawsscripts
> 
> __________�
> 
> View the list's information and change your settings at 
> //www.freelists.org/list/jawsscripts
> 
> 
> 


__________�

View the list's information and change your settings at
//www.freelists.org/list/jawsscripts

__________�

View the list's information and change your settings at 
//www.freelists.org/list/jawsscripts

Other related posts: