Incremental GSC parsing (exact copy of the tutorials shared as a separate project) / __pycache__ / tree.cpython-35.pyc
1577 views�t�W% � @ s d Z Gd d � d � Z d S)zt GSC Software: Tree class Author: Nick Becker Department of Cognitive Science, Johns Hopkins University Summer 2015 c @ sv e Z d Z d Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d d � Z d S)�TreezN The last tree class you will ever need. Currently under development. c C sK | j | � | _ g | _ | j | j d � g | _ | j | j � d S)a� Create an internal representation of a tree by passing in a text version of it. Formatting rules apply: trees must be passed to this method in the form A (B A (D E)) In other words, parentheses enclose a node's children, and sister nodes are separated by whitespace. Parentheses were chosen over brackets to avoid any confusion when entering HNF trees, which contain many bracketed symbols. Any symbols can be used in node labels EXCEPT parentheses, commas, and percent signs (%). Calling this method automatically sets the recursive-style filler-role bindings for each node, as well as the span-style filler-role bindings for each node. �rN)�treeStringToList�treeList�recursiveFRbindings�setRecursiveRoles�spanFRbindings�setSpanRoles)�selfZ treeString� r �6/projects/18c77389-a5c3-49de-946a-7593b53d3fb2/tree.py�__init__ s z Tree.__init__c C s� | j d d � j � } d } x� | t | � k r| | } t | � d k r| d d k so | d d k r� | d d � | | <| j | | d � | d 7} | | } | d d k s� | d d k r| d d � | | <| j | d | d � | d 8} | d 7} q! Wd } x� | t | � d k r�| | } | | d } | d k rv| d k rv| d k rv| d k s�| d k r�| d k r�| d k r�| j | d d � | d 7} | d 7} qW| S)az Check formatting of the input string; if it is valid, prepare it for internal operations. TO DO: check input string, most likely using regular expressions - number of '(' should match number of ')' - - len(findall(...)) - first character should be something other than ( or ) - no stray characters after final ) �,� � � �(�)N�����r r r )�replace�split�len�insert)r �inputStringZniceList�iZ currentSymbolZ nextSymbolr r r r - s2 0$ zTree.treeStringToListc C s t | � d k r� | d d k r5 t d � | } n~ | d d k rv t t | d � d � | d d � } | } n= | d d k r� | d d � } n | j j | d | f � | j | d d � | � n� d } x� | rzd } x� t t | j � d � D]t } t | j | d � t | j | d d � k r� | j | } | j | d | j | <| | j | d <d } q� Wq� Wd S) zE Recursive function to populate recursiveFRbindings. r r r r Nr TF)r �str�intr �appendr �range)r Z treeNodes�levelZnewLevel�needSwappedr �tempr r r r Z s&