montepy.input_parser.syntax_node.ListNode#

class montepy.input_parser.syntax_node.ListNode(name)#

Bases: SyntaxNodeBase

A node to represent a list of values.

Parameters:

name (str) – the name of this node.

Methods:

_delete_trailing_comment()

Deletes the trailing comment if any.

_expand_shortcuts(new_vals, new_vals_cache)

Expands the existing shortcuts, and tries to "zip out" and consume their neighbors.

_grab_beginning_comment(extra_padding)

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

append(val[, from_parsing])

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.

remove(obj)

Removes the given object from this list.

update_with_new_values(new_vals)

Update this list node with new values.

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.

_expand_shortcuts(new_vals, new_vals_cache)#

Expands the existing shortcuts, and tries to “zip out” and consume their neighbors.

Parameters:
  • new_vals (list) – the new values.

  • new_vals_cache (dict) – a dictionary mapping the id of the ValueNode to the ValueNode or ShortcutNode. This is ordered the same as new_vals.

_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(val, from_parsing=False)#

Append the node to this node.

Parameters:
  • node (ValueNode, ShortcutNode) – node

  • from_parsing (bool) – If this is being append from the parsers, and not elsewhere.

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

remove(obj)#

Removes the given object from this list.

Parameters:

obj (ValueNode) – the object to remove.

update_with_new_values(new_vals)#

Update this list node with new values.

This will first try to find if any shortcuts in the original input match up with the new values. If so it will then “zip” out those shortcuts to consume as many neighbor nodes as possible. Finally, the internal shortcuts, and list will be updated to reflect the new state.

Parameters:

new_vals (list) – the new values (a list of ValueNodes)

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