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:
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 the trailing
c
style comments if any.get_value
(key)Get a value from the syntax tree.
Attributes:
A generator of all comments contained in this tree.
The name for the node.
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:
- 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