LDeclaration Struct

#include <Layers/lparser.h>

Public Members

std::vector<LName> traversal
LName group
LName item

Detailed Description

A declaration is a specially structured sequence of names that identifies one or more items.

Declarations are structured with an optional traversal (/-separated names), followed by an optional group (name followed by a .), followed by a name representing the item(s). All declarations have at least an item, except for group set declarations which explicitly have a group without an item following it.

The following examples use the notation from LName: the outer braces are the name and the inner braces are its expandables. A traversal adds a third level because it is a list of names.

Left Pane                       // item = {{"Left"}, {"Pane"}}

End.Position                    // group = {{"End"}}
                                // item = {{"Position"}}

End.                            // group = {{"End"}}
                                // item = {}

Window/(Left,Right) Pane        // traversal = {{{"Window"}}}
                                // item = {{"Left","Right"}, {"Pane"}}

(Cancel,Confirm) Button/Fill    // traversal = {{{"Cancel","Confirm"}, {"Button"}}}
                                // item = {{"Fill"}}

Window/Titlebar/Exit Button     // traversal = {{{"Window"}}, {{"Titlebar"}}}
                                // item = {{"Exit"}, {"Button"}}

Button/Layout.Direction         // traversal = {{{"Button"}}}
                                // group = {{"Layout"}}
                                // item = {{"Direction"}}

Member Variable Documentation

std::vector<LName> traversal

Names of the parents in the declared item's hierarchy

LName group

Name of the group that the item is associated with

LName item

Name of the declared item

Appearance
Theme
—