montepy.input_parser.syntax_node.SyntaxNode#

class montepy.input_parser.syntax_node.SyntaxNode(name, parse_dict)#

Bases: SyntaxNodeBase

A general syntax node for handling inner tree nodes.

This is a generalized wrapper for a dictionary. The order of the dictionary is significant.

This does behave like a dict for collecting items. e.g.,

value = syntax_node["start_pad"]
if key in syntax_node:
    pass
Parameters:
  • name (str) – a name for labeling this node.

  • parse_dict (dict) – the dictionary of the syntax tree nodes.

Methods:

_delete_trailing_comment()

Deletes the trailing comment if any.

_grab_beginning_comment(extra_padding)

Consumes the provided comment, and moves it to the beginning of this node.

append(node)

Append the node to this node.

check_for_graveyard_comments([...])

Checks if there is a graveyard comment that is preventing information from being part of the tree, and handles them.

flatten()

Flattens this tree structure into a list of leaves.

format()

Generate a string representing the tree's current state.

get_trailing_comment()

Get the trailing c style comments if any.

get_value(key)

Get a value from the syntax tree.

Attributes:

comments

A generator of all comments contained in this tree.

name

The name for the node.

nodes

The children nodes of this node.

_delete_trailing_comment()#

Deletes the trailing comment if any.

_grab_beginning_comment(extra_padding)#

Consumes the provided comment, and moves it to the beginning of this node.

Parameters:

extra_padding (list) – the padding comment to add to the beginning of this padding.

append(node)#

Append the node to this node.

Parameters:

node (SyntaxNodeBase, str, None) – node

check_for_graveyard_comments(has_following_input=False)#

Checks if there is a graveyard comment that is preventing information from being part of the tree, and handles them.

A graveyard comment is one that accidentally suppresses important information in the syntax tree.

For example:

imp:n=1 $ grave yard Vol=1

Should be:

imp:n=1 $ grave yard
Vol=1

These graveyards are handled by appending a new line, and the required number of continue spaces to the comment.

Added in version 0.4.0.

Parameters:

has_following_input (bool) – Whether there is another input (cell modifier) after this tree that should be continued.

Return type:

None

flatten()#

Flattens this tree structure into a list of leaves.

Added in version 0.4.0.

Returns:

a list of ValueNode and PaddingNode objects from this tree.

Return type:

list

format()#

Generate a string representing the tree’s current state.

Returns:

the MCNP representation of the tree’s current state.

Return type:

str

get_trailing_comment()#

Get the trailing c style comments if any.

Returns:

The trailing comments of this tree.

Return type:

list

get_value(key)#

Get a value from the syntax tree.

Parameters:

key (str) – the key for the item to get.

Returns:

the node in the syntax tree.

Return type:

SyntaxNodeBase

Raises:

KeyError – if key is not in SyntaxNode

property comments#

A generator of all comments contained in this tree.

Returns:

the comments in the tree.

Return type:

Generator

property name#

The name for the node.

Returns:

the node’s name.

Return type:

str

property nodes#

The children nodes of this node.

Returns:

a list of the nodes.

Return type:

list