###############################################################################
# This is a file for mapping parser entries to PBS Attributes
# tip: disable soft wrap in your text editor to work with this file
###############################################################################

###############################################################################
# Formatting:
# lines starting with # are ignored
# empty lines are ignored
#
# separator: "::"
# 
# attribute entry:
# Parser Key ID :: PBS Key ID
#
# The File is internally treated as a List
# Parser Key ID is a regular expression, case ignoring
# First match (top/down) will overwrite other possible matches
###############################################################################

name :: PBSNODE_NAME
state :: PBSNODE_STATE
np :: PBSNODE_NP
ntype :: PBSNODE_NTYPE
jobs :: PBSNODE_JOBS
#status ::PBSNODE_STATUS