Skip to main content

module Node

rascal-0.34.0

Library functions for nodes.

Usage

import Node;

The following library functions are defined for nodes:

function arity

Determine the number of children of a node.

int arity(node T)

Examples

rascal>import Node;
ok
rascal>arity("f"(10, "abc"));
int: 2
rascal>arity("f"(10, "abc", false));
int: 3

function getChildren

Get the children of a node.

list[value] getChildren(node T)

Examples

rascal>import Node;
ok
rascal>getChildren("f"(10, "abc"));
list[value]: [10,"abc"]

function getKeywordParameters

Get the keyword parameters of a node.

map[str,value] getKeywordParameters(node T)

Examples

rascal>import Node;
ok
rascal>getKeywordParameters("f"(10, "abc", height=0));
map[str, value]: ("height":0)

function getAnnotations

map[str, value] getAnnotations(node T)

function setKeywordParameters

Set the keyword parameters of a node.

&T <: node setKeywordParameters(&T <: node x, map[str,value] keywordParameters)

Examples

rascal>import Node;
ok
rascal>setKeywordParameters("f"(10, "abc"), ("height":0));
node: "f"(10,"abc",
height=0)

function setAnnotations

&T <: node setAnnotations(&T <: node x, map[str,value] keywordParameters)

function getName

Determine the name of a node.

str getName(node T)

Examples

rascal>import Node;
ok
rascal>getName("f"(10, "abc"));
str: "f"
---
f
---

function makeNode

Create a node given its function name and arguments.

node makeNode(str N, value V..., map[str, value] keywordParameters = ())

Examples

rascal>import Node;
ok
rascal>makeNode("f", [10, "abc"]);
node: "f"(10,"abc")

function unset

Reset a specific keyword parameter back to their default on a node.

&T <: node unset(&T <: node x, str keywordParameter)

function delAnnotation

&T <: node delAnnotation(&T <:  node x, str keywordParameter)

function unset

Reset a set of keyword parameters back to their default on a node.

&T <: node unset(&T <: node x, set[str] keywordParameters)

function unset

Reset all keyword parameters back to their default.

&T <: node unset(&T <: node x)

function delAnnotations

&T <: node delAnnotations(&T <: node x)

function unsetRec

Recursively reset all keyword parameters of the node and its children back to their default.

&T unsetRec(&T x)

function delAnnotationsRec

&T delAnnotationsRec(&T x)

function unsetRec

Recursively reset a specific keyword parameter of the node and its children back to its default.

&T unsetRec(&T x, str keywordParameter)

function unsetRec

Recursively reset a selected set of keyword parameters of the node and its children back to their default.

&T <: node unsetRec(&T <: node x, set[str] keywordParameters)

function arbNode

node arbNode()

function toString

Convert a node to a string.

str toString(node T)

Examples

rascal>import Node;
ok
rascal>F = "f"(10, "abc", color="red", size="large");
node: "f"(10,"abc",
size="large",
color="red")
rascal>toString(F);
str: "\"f\"(10,\"abc\",size=\"large\",color=\"red\")"
---
"f"(10,"abc",size="large",color="red")
---

function itoString

Convert a node to an indented string.

str itoString(node T)

Examples

rascal>import Node;
ok
rascal>F = "f"(10, "abc", color="red", size="large");
node: "f"(10,"abc",
size="large",
color="red")
rascal>itoString(F);
str: "\"f\"(10,\"abc\",\n size=\"large\",\n color=\"red\")"
---
"f"(10,"abc",
size="large",
color="red")
---