/## Copyright 2021 Kyle Gunger This file is licensed under the CDDL 1.0 (the License) and may only be used in accordance with the License. You should have received a copy of the License with this software/source code. If you did not, a copy can be found at the following URL: https://opensource.org/licenses/CDDL-1.0 THIS SOFTWARE/SOURCE CODE IS PROVIDED "AS IS" WITH NO WARRANTY, GUARANTEE, OR CLAIM OF FITNESS FOR ANY PURPOSE EXPRESS OR IMPLIED #/ /; tree_type (~{}Token tok, ~int cur) [Node] ;Token type_tok = {NODE_TYPE.TYPE, 0, 0, ~CNULL} ;{}Node type_sub = {} # Pre type keyword checks /; loop (tok`{cur`}.token_type !== TOKEN_TYPE.DEFWORD && tok`{cur`}.token_type !== TOKEN_TYPE.KEYTYPE) /; if (tok`{cur`}.token_type == TOKEN_TYPE.KEYWORD) ;/ ;/ /; ;/ ;return {type_tok, ~type_sub} ;/ /; tree_value [Node] ;Token def_tok = {NODE_TYPE.VALUE, 0, 0, ~CNULL} ;{}Node def_sub = {} ;return {def_tok, ~def_sub} ;/ /; tree_definition [Node] ;Token def_tok = {NODE_TYPE.DEFN, 0, 0, ~CNULL} ;{}Node def_sub = {} ;def_sub.append(tree_type()) ;{}Node vals = tree_list_value() /; loop (int i = 0; i < len vals) [i++] ;def_sub.append(vals{i}) ;/ ;return {def_tok, ~def_sub} ;/