Skip to content
This repository has been archived by the owner on Aug 1, 2023. It is now read-only.

~a partially supported; use causes compiler errors #34

Open
janicedatawire opened this issue Oct 23, 2015 · 0 comments
Open

~a partially supported; use causes compiler errors #34

janicedatawire opened this issue Oct 23, 2015 · 0 comments

Comments

@janicedatawire
Copy link
Contributor

~ is listed as a valid symbol and has a defined rule in parser.py but it isn't fully implemented and trying to use a=~b in Quark code results in similar errors in all three languages. Here's the Javascript version of the error:

$ quark --javascript ~/quark-examples/javascript examples/tilde.q
Traceback (most recent call last):
  File "/Users/janicekarin/virtualenv/bin/quark", line 9, in <module>
    load_entry_point('datawire-quark==0.1.0', 'console_scripts', 'quark')()
  File "/Users/janicekarin/quark/quark/compiler.py", line 566, in main
    exit(_main(docopt(main.__doc__)))
  File "/Users/janicekarin/quark/quark/compiler.py", line 541, in _main
    c.parse(src, fd.read())
  File "/Users/janicekarin/quark/quark/compiler.py", line 449, in parse
    self.parse_r(name, text)
  File "/Users/janicekarin/quark/quark/compiler.py", line 456, in parse_r
    file = self.parser.parse(text)
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 244, in parse
    return self._parse_or_match(text, pos, 'parse')
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 278, in _parse_or_match
    return self.visit(getattr(self.grammar, method_name)(text, pos=pos))
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/virtualenv/lib/python2.7/site-packages/parsimonious/nodes.py", line 208, in visit
    return method(node, [self.visit(n) for n in node])
  File "/Users/janicekarin/quark/quark/grammar.py", line 27, in decorator
    result = action(self, node, children)
  File "/Users/janicekarin/quark/quark/parser.py", line 357, in visit_uop
    return Name(self.unary_aliases[op])
parsimonious.exceptions.VisitationError: KeyError: '~'

Parse tree:
<Node called "uop" matching "~">  <-- *** We were here. ***
    <Node called "TWIDDLE" matching "~">
        <Node called "_" matching "">
        <Node matching "~">
        <Node called "_" matching "">
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant