Using Legato

The Legato Scripting Language and the IDE are included in all installations of GoFiler Complete. You may also download the Legato Interpreter for free as a standalone package below.

Legato Basic

https://www.novaworkssoftware.com/legato/current/legatobasic.zip

This package will allow you to run Legato scripts from a command line. Legato is free for development for personal or non-commercial use. By downloading Legato Basic, you agree to the Terms and Conditions of its use.

Revised: September 18, 2023

Legato Integrated Development Environment (IDE)

https://www.novaworkssoftware.com/legato/current/legatoide.zip

This package will allow you to write, debug and run Legato scripts from an IDE. Legato is free for development for personal or non-commercial use. By downloading Legato IDE, you agree to the Terms and Conditions of its use.

Revised: September 18, 2023

Legato Release Notes
Version 1.4d (09/18/2023)
GoFiler 5.20a

1.0 Legato Script Language Notes 

1.1  Script Engine Improvements and Changes

–  Corrected a problem with error reporting. If a function declaration used the ‘void’ data type but had a different prototype, it could result in an exception. This was accidentally introduced in Legato version 1.4a (GoFiler 5.19a) when making provisions for a future data type.

–  Corrected issues with using numeric key names for arrays for the ArrayToCluster and ClusterToArray functions, as well as internally within the variable pool manager. For example, referencing “a[“2”]” would turn into “a[2]”. This was most pronounced when using clusters.

–  Expanded and improved key name syntax and corrected issues when certain protected characters, such as “{” or “}”, were used in a key name.

–  Corrected an issue where undefined symbols where being reported as undefined but also being reported as unused. The later error is obviously redundant and now removed.

1.2  Function Improvements and Changes

–  Added an option to provide a map position instead of a row and column for the following functions:

HTMLTableGetCell

HTMLTableGetCellAsText

HTMLTableGetCellClass

HTMLTableGetCellProperties

–  Improved error checking for the ArrayAddKeyName and ArrayAddKeyNames functions. The ArrayAddKeyName function will no longer stop with a run time error for a bad key name.

–  Corrected an issue with the GetEditWindowType function when a window handle is used as the source parameter. It was returning the active window handle always.

–  Improved object name reporting for the GetName function.

–  Added a check for parameter error to the HTMLTableMap function such that a failure to provide a source parameter results in a run time error.

1.3  New API Functions

HTML Table Object

–  HTMLTableFindCell — Finds a cell by file position and returns a map index.

–  HTMLTableGetRowPositions — Returns a table with the row tag positions.

Strings

–  QuotedStringToString — Extracts string from a quoted capsule with basic encoding.

–  StringToQuotedString — Places source string into a quoted capsule with basic encoding.

Variable Management

–  ArrayIsValidKeyName — Tests a string as a valid key name.

XDX

–  XDXCreateUnitComponent — Creates a component string for unit ID information.

–  XDXGetUnitProperties — Extracts the unit properties for a fact.

XBRL Model

–  XBRLGetRole — Returns a specified role by index or searches by role id.

–  XBRLGetRoleCount — Returns the count of all defined roles.

–  XBRLGetRoleReferenceCount — Returns the count of all role references.