AFTERGRASP: Change in FOREVER/WAIT compiled code

24 views
Skip to first unread message

John Bridges

unread,
Nov 4, 2013, 9:22:45 PM11/4/13
to after...@googlegroups.com
New build of AfterGRASP is up for download:
 
 
 
agsetup_20131104.exe
 
----------------------------------------------------------------------------
Mon, 04 Nov 2013

New internal compiler generated command _IDLEIFLESS takes a value,
variable name, and label. Does not take stack tail, so MUST have
all 3 parameters which are removed from stack upon return. Is generated
by FOREVER COUNT and WAIT COUNT commands by compiler.

For example WAIT 33 generates this low level code:
 (_ftimer1 timerinit) (0 var_mousekey) _wait1 _label (var_mousekey) _waitquit1 _if 330 _ftimer1 _wait1 _idleifless _waitquit1 _label (_ftimer1 free)

FOREVER 2 generated this low level code:
 (_ftimer1 timerinit) _forever1 _label 20 _ftimer1 _forever1 _idleifless (_ftimer1 free)
 
 The purpose of these changes is when a FOREVER/WAIT is active, and a WHEN event does
 multiple POPs that wipe out the timing variables, it can no longer produce a variable
 undefined error.

----------------------------------------------------------------------------
Thu, 31 Oct 2013

*** EARLY ALPHA - NOT WORKING ***
New compile time commands under development, SCRIPTREPLACE and SCRIPTIONS:

SCRIPTREPLACE SEARCH REPLACE

Like the #DEFINE feature in C/C++, except the search is a regular expression.
Same syntax as the strregexreplace. Parameters can be in quotes, or not.


SCRIPTOPTIONS OPTION1 OPTION2 OPTION3

Option currently supported are BRACES, NOBRACES, ATVAR, and NOATVAR
BRACES allows use of curly braces instead of ENDIF/NEXT/ENDWHILE/ENDLOOP
terminators.

NOBRACES:
  if (@fred==charles)
   messagebox ok
  endif


BRACES:
  if (@fred==@charles)
  {
   messagebox ok
  }

or

  if (@fred==charles) {
   messagebox ok
  }

ATVAR:
  if (@fred==charles)
   messagebox ok
  endif


NOATVAR:
  if (fred=="charles")
   messagebox("ok")
  endif


----------------------------------------------------------------------------
Thu, 03 Oct 2013

New function CLIPBOARDGETLIST() gives the list of filenames from CF_HDROP.
Returns multiple items, so you need to use something like ARRAY or
STRLIST to capture the results.

Example:

 for fn inarray array(clipboardgetlist())
    messagebox @fn
 next



----------------------------------------------------------------------------

Reply all
Reply to author
Forward
0 new messages