Skip to content
Snippets Groups Projects
Select Git revision
  • 5d9c21990ec119da2f8fe8dacca359b2b94556b0
  • master default protected
  • fix-words-ann
  • wccl-rules-migration
  • develop
5 results

iteration.cpp

Blame
  • Syntax.py 1.02 KiB
    #! /usr/bin/python
    # -*- coding: utf-8 -*-
    
    from importer.Schema import Schema
    
    
    def analyze_tree(tree):
    
        phrases = {}
        schemata = []
        
        for schema_tree in tree._children[0]._children[0]._children:
            schema = Schema.fromTree(schema_tree)
            schemata.append(schema)
            phrases.update(schema.getPhraseIds())
            
        return phrases, schemata
            
    
    class Syntax:
    
        def __init__(self, phrases, schemata):
            self._phrases = phrases
            self._schemata = schemata
    
        @classmethod
        def fromTree(cls, syntax_tree):
            phrases, schemata = analyze_tree(syntax_tree)
            return cls(phrases, schemata)
    
        def getPhraseIds(self):
            return self._phrases
    
        def store(self, entry, stored_positions):
            for schema in self._schemata:
                schema.store(entry, stored_positions)
            entry.schemata_count = len(self._schemata)
            entry.save()
        
        def __unicode__(self):
            return '[' + ','.join([unicode(schema) for schema in self._schemata]) + ']'