manual:chapter4:libs

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
manual:chapter4:libs [2018/03/02 09:43]
claudio
manual:chapter4:libs [2019/09/11 07:57]
claudioadmin [Creating user libraries]
Line 25: Line 25:
 ''{ { IDENT NARGS ALLOWINSYMB HELPTEXT } { IDENT NARGS ALLOWINSYMB HELPTEXT } ... }'' ''{ { IDENT NARGS ALLOWINSYMB HELPTEXT } { IDENT NARGS ALLOWINSYMB HELPTEXT } ... }''
  
-Where ''IDENT'' is the name of the command to be made visible, this is both the name of the variable containing the command in the directory, and the name of the command as it will be seen by the user of the library. ''NARGS'' and ''ALLOWINSYMB'' are integer numbers. The former is the number of arguments that the command takes, and the latter is a true/false value (1 or 0) indicating whether that command will be allowed to be used in symbolic expressions or not. All user commands (when allowed by setting this number to 1), will be accepted as a function call inside expressions, and the number of commands will be checked against the ''NARGS'' number. Finally, ''HELPTEXT'' is a string to be used as help when the user long-presses the name of the command in the menu. The string should be formatted so the text is in 3 lines, with the first 2 describing the command and the third line shows a stack diagram (preferably following the same guidelines as used in the system menus for consistency).+Where ''IDENT'' is the name of the command to be made visible, this is both the name of the variable containing the command in the directory, and the name of the command as it will be seen by the user of the library. ''NARGS'' and ''ALLOWINSYMB'' are integer numbers. The former is the number of arguments that the command takes from the stack, and the latter is a true/false value (1 or 0) indicating whether that command will be allowed to be used in symbolic expressions or not. All user commands (when allowed by setting this number to 1), will be accepted as a function call inside expressions, and the number of arguments will be checked against the ''NARGS'' number. Finally, ''HELPTEXT'' is a string to be used as help when the user long-presses the name of the command in the menu. The string should be formatted so the text is in 3 lines, with the first 2 describing the command and the third line shows a stack diagram (preferably following the same guidelines as used in the system menus for consistency).
 The ''$VISIBLE'' must therefore be a list of lists, where each sublist has exactly 4 elements: one ident, two integers and one string. Any deviation from this format will cause ''CRLIB'' to issue an ''Invalid $VISIBLE list''. The ''$VISIBLE'' must therefore be a list of lists, where each sublist has exactly 4 elements: one ident, two integers and one string. Any deviation from this format will cause ''CRLIB'' to issue an ''Invalid $VISIBLE list''.
  
Line 64: Line 64:
 |''$VISIBLE''  |''{ { 'HWORLD' 0 0 "Shows a nice↲greeting.↲  →  " } }'' | |''$VISIBLE''  |''{ { 'HWORLD' 0 0 "Shows a nice↲greeting.↲  →  " } }'' |
  
-Finally, use ''CRLIB'' to create the library, then ''ATTACH'' to attach it. From the main menu, ''Libs'' will now show an item ''mLIB''. Long pressing the item will show the library title. Going into the menu we should see the HWORLD command, long pressing it will show the help that was provided.+Finally, use ''CRLIB'' to create the library, then ''ATTACH'' to attach it. From the main menu, ''Libs'' will now show an item ''MyHW''. Long pressing the item will show the library title. Going into the menu we should see the HWORLD command, long pressing it will show the help that was provided.
  
 Notice that in this case, the ''WORLD'' string was included in the library because it was referenced by the main program ''HWORLD'', but it is not visible to the user. Notice that in this case, the ''WORLD'' string was included in the library because it was referenced by the main program ''HWORLD'', but it is not visible to the user.
 From now on, compiling a program that contains ''HWORLD'' will use the installed library command, rather than an identifier. Programs compiled before the library was attached will have an identifier instead. From now on, compiling a program that contains ''HWORLD'' will use the installed library command, rather than an identifier. Programs compiled before the library was attached will have an identifier instead.
 +
 +
 ---- ----
  
  • manual/chapter4/libs.txt
  • Last modified: 2019/09/11 07:57
  • by claudioadmin