summaryrefslogtreecommitdiff
path: root/fast/parse.hh
diff options
context:
space:
mode:
authorPatrick Simianer <p@simianer.de>2014-09-16 10:23:14 +0100
committerPatrick Simianer <p@simianer.de>2014-09-16 10:23:14 +0100
commit129a22cfcc7651daa4b11ed52e7870249f6373a5 (patch)
tree78de4649396ab0d37a325b7598f9873c2d65f4c9 /fast/parse.hh
parentdf70006a07fb67b17fb39aa56762c50c2e7b8131 (diff)
spring cleaning
Diffstat (limited to 'fast/parse.hh')
-rw-r--r--fast/parse.hh108
1 files changed, 0 insertions, 108 deletions
diff --git a/fast/parse.hh b/fast/parse.hh
deleted file mode 100644
index 33ea9ce..0000000
--- a/fast/parse.hh
+++ /dev/null
@@ -1,108 +0,0 @@
-#pragma once
-
-#include <vector>
-#include <utility>
-#include <sstream>
-#include <unordered_map>
-
-#include "grammar.hh"
-#include "util.hh"
-#include "weaver.hh"
-
-
-using namespace std;
-
-typedef pair<size_t,size_t> Span;
-namespace std {
- template <>
- struct hash<Span>
- {
- size_t
- operator()(Span const& k) const
- {
- return ((hash<size_t>()(k.first)
- ^ (hash<size_t>()(k.second) << 1)) >> 1);
- }
- };
-}
-
-namespace Parse {
-
-void visit(vector<Span>& p,
- size_t i, size_t l, size_t r, size_t x=0)
-{
- for (size_t span = i; span <= r-x; span++) {
- for (size_t k = l; k <= r-span; k++) {
- p.push_back(Span(k,k+span));
- }
- }
-}
-
-struct ChartItem
-{
- Span span;
- G::Rule const* rule;
- vector<ChartItem*> tails;
- size_t dot;
-
- ChartItem(G::Rule* r)
- {
- rule = r;
- dot = 0;
- }
-
- ChartItem(ChartItem const& o)
- {
- span.first = o.span.first;
- span.second = o.span.second;
- rule = o.rule;
- for (auto it: o.tails)
- tails.push_back(it);
- dot = o.dot;
- }
-};
-
-struct Chart
-{
- size_t n_;
- unordered_map<Span, vector<ChartItem*> > m_;
- unordered_map<string,bool> b_;
-
- vector<ChartItem*>& at(Span s)
- {
- return m_[s];
- }
-
- string h(ChartItem* item, Span s)
- {
- ostringstream ss;
- item->rule->lhs->symbol();
- ss << s.first;
- ss << s.second;
-
- return ss.str();
- }
-
- void add(ChartItem* item, Span s)
- {
- m_[s].push_back(item);
- b_[h(item, s)] = true;
- }
-
- Chart(size_t n)
- {
- }
-};
-
-
-void
-init(vector<symbol_t> const& in, size_t n, Chart& active, Chart& passive, G::Grammar const& g)
-{
- for (auto rule: g.rules) {
- cout << *rule << endl;
- }
-}
-
-
-} //
-