Sequencer

Help Version: 3.15 - 23/MAR/2021

Sequencer Description

Sequencer


Inside "Builder's Heaven - Codes Everything You Code!" the way you use a Dialog is just a matter of imagination and implementation between you, the code, and your intentions...

Builder's Heaven Sequencer feature is way to insert a first draw of logic in your program structure, or to insert configuration lines inside specific areas.

Remember to configure Sequencer only at the end of the of setup of the current program.

The main purpose of Sequencer is to take pieces of code from the right area to the left Program Structure, in order to add useful rows that complete your program. The generated program will have those rows into the final code.
The Right area is populated by rows identified inside M.P.S.C. or fixed string inside Custom Codes. The Left area is your program structure based upon current selections, and is populated by rows and rows also identified inside M.P.S.C. .

The main Idea is that are functions that can be called from a main (for example like a sequence of DB accesses called from a Function). Other implementation of the Module just let you insert setup 'Setup Rows', and so on...


Here follows the list of every control:

Left Tree Structure: Left side is a tree structured obtained reading your current selections

  • Drag and Drop: Populate the Tree Structure dragging from Right PROCs to left
  • Checkboxes: Alternative way to handle right PROCs via Control Buttons (ex. "Add Selected Button").
  • Right Click on Little Man: Delete the Ties from the Tree structure
  • : the program you are building
  • : PROCs of a program empty
  • : PROCs of a program with at least one call to other PROCs
  • : SEQUENCER: position where it's allowed to insert PROCs
  • : SEQUENCER that contains at least one PROC
  • : TIES, or called PROCs inserted by the User into a father PROC


Right List Area: list of identified inside M.P.S.C.

  • Drag and Drop: Populate the Tree Structure dragging from Right PROCs to left
  • Checkboxes: Alternative way to handle right PROCs via Control Buttons (ex. "Add Selected Button").


Control Button Area:

  • Delete All: Remove all from Tree structure
  • Deselect All: Uncheck all from Tree structure
  • Add Selected: Add checked Right into Left checked entry points
  • Deselect All: Uncheck every Right
  • Select All: Check every Right
  • Export TXT: extract a printable version of the Tree Structure
  • Validate M.P.S.C. : Verify the match between Dialog / and the Main Pseudo Source Code, in case you have modified this one during editing. Return a Validation OK result or Error list.

How to use the Dialog

Inside the Sequencer Panel you can move the required from the List (right) to the Tree (Left). This operation is known as Drag and Drop: press the left mouse button upon a Right-side and , holding the button, move it to the Left Tree Flow near a row. If the movement is allowed your mouse cursor will show an ARROW, otherwise you'll see the "ACTION DENIED" icon.

When the has been inserted in the Tree structure a Little Man icon will appear. Inside this structure it's allowed to move a up or down others (to correctly define the order of the calls), or delete them.

Using the Checkbox near the in the List (Right) and in the Tree Structure (Left) enable multiple movements. Confirm this operations clicking the button "Add Selected". Moreover inside the Tree Structure you can do multiple deleting using both checkboxes and the button "Delete Selected".

The button "validate M.P.S.C. " check between Sequencer definitions and M.P.S.C. file, that contains every and every ; correct the rows in case of errors (To fully comprehend the relation between M.P.S.C. and / definition read the technical guide below).

At last you can also extract a printable version of the Tree Structure, using the button: "Export TXT".

Sequencer Technical guide

BH Registered

Configuring PROCs ans Sequencer inside Main Pseudo Source Code

If you want to advantage of this module, every M.P.S.C. must have the correct implementation, otherwise nothing will be displayed into the Tree Structure.

This powerful module extract information about and from the M.P.S.C. . It's simple to understand that the M.P.S.C. can be modified (by advanced user) to handle more and . Follow these steps.

  • Define a PROCs: Insert a P in your M.P.S.C. at position Flag5. Everything that follows become the PROC.
    Example (C++ language): ...
    C     /// Initialize Class Properties with Defaults and Allocations
    C   P void <PRGNAM>::Initialize(void) {
    C         // INIT - Properties
    C0B       // (initializations...)
    C   S     // <SEQUENCER_INIT_METHOD>
    C     };
    ...
    add draggable elements into the Right List while inside the Right Tree structure creates a Father node for all contained. It's not necessary to have a inside every .
  • Define a SEQUENCER: Insert a S followed by positional keyword <SEQUENCER in your M.P.S.C. at position Flag5
    Example (C++ language): ...
    C     /// Initialize Class Properties with Defaults and Allocations
    C   P void <PRGNAM>::Initialize(void) {
    C         // INIT - Properties
    C0B       // (initializations...)
    C   S        <SEQUENCER_INIT_METHOD>
    C     
    C   S        <SEQUENCER_INIT_METHOD_SECOND_PART>
    C     
    C   S        <SEQUENCER_INIT_METHOD_FINAL_PART>
    C     };
    ...
    A Tag is composed by a fixed part "<SEQUENCER" and a user free dynamic part "_INIT_METHOD>". This second area should be used to let you identify where you are inserting the during Dialog, so description must be verbose. Moreover a single PROC can have multiple , in order to Drag Code line in multiple points of your PROC.

TIP 1: Frequently use the button "Validate M.P.S.C. " to verify ID of Sequencer/Proc between dialog and M.P.S.C. .
TIP 2: The PROC that didn't contains any Sequencers are valid to be called from others PROC (in fact they will appears on the Right List), but without the Sequencers Rows they cannot call anything.

Clear PROCs sintax from unwanted piece of code

When a PROCs is defined, it contains some elements that should be erased when you use it for "calling". Builder's Heaven provide a Language Setup specification to clear the Right List from unwanted Code. Open the file LanguageConfiguration.txt inside your language setup directory and add rows like the following. The content on the right side of the equal will be cleared during parsing process of the Right List. You can add more cleaning rows increasing a progressive number.

Here the syntax

  1. Current Language:: C++
  2. Fixed Part: _PROC_FILTER_
  3. Progressive Number: 001
  4. Fixed Part: =
  5. some character to clear: <PRGNAM>::

Example (C++ language): ...
C++_PROC_FILTER_001=<PRGNAM>::
C++_PROC_FILTER_002={
C++_PROC_FILTER_003= = 0;
...

The result of this filtering transform a row like this...
Example (C++ language): ...
C     /// Initialize Class Properties with Defaults and Allocations
C   P void <PRGNAM>::Initialize(void) {
...

...into a more user-friendly PROC, cleared from surrounding elements, like this:
Example (C++ language): void Initialize(void)

If the resulting syntax is not perfectly the syntax you need it's suggested to create commented Sequencer Lines and fix it the during further development on the created program.
Example (C++ language): ...
C   S        // <SEQUENCER_INIT_METHOD>
...

More information about Sequencer can be found here
Advanced Options
Advanced User Guide

Advertising