Error handling for some strange NoneType errors
Currently it seems like a top level argument node can be created. Need to check that soon, but not tonight. I am tired Took 38 minutes
This commit is contained in:
parent
1da53dba48
commit
be30f1d264
|
@ -1,5 +1,6 @@
|
||||||
|
import xml
|
||||||
|
import xml.dom.minidom
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
from abc import ABC, abstractmethod
|
|
||||||
|
|
||||||
from constants import *
|
from constants import *
|
||||||
|
|
||||||
|
@ -107,7 +108,11 @@ class GeneralUnparser:
|
||||||
self.unparse_brackets(node)
|
self.unparse_brackets(node)
|
||||||
elif node.tag == GAZ_BREAK_TAG:
|
elif node.tag == GAZ_BREAK_TAG:
|
||||||
self.unparse_break(node)
|
self.unparse_break(node)
|
||||||
|
elif node.tag is None:
|
||||||
|
raise NoneTagException("None tag encountered", self.xml)
|
||||||
else:
|
else:
|
||||||
|
with open("unknown_tag.xml", "w") as f:
|
||||||
|
f.write(self.pretty_xml())
|
||||||
raise Exception("Unknown tag: " + node.tag)
|
raise Exception("Unknown tag: " + node.tag)
|
||||||
|
|
||||||
def unparse_block(self, node):
|
def unparse_block(self, node):
|
||||||
|
@ -319,4 +324,7 @@ class GeneralUnparser:
|
||||||
def format_single_arg(self, param, param1):
|
def format_single_arg(self, param, param1):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
|
def pretty_xml(self):
|
||||||
|
dom = xml.dom.minidom.parseString(ET.tostring(self.xml).decode('utf-8'))
|
||||||
|
pretty: str = dom.toprettyxml()
|
||||||
|
return pretty
|
||||||
|
|
|
@ -47,3 +47,11 @@ GAZ_STRING_KEY = "string"
|
||||||
GAZ_CHAR_KEY = "char"
|
GAZ_CHAR_KEY = "char"
|
||||||
GAZ_BRACKET_TAG = "brackets"
|
GAZ_BRACKET_TAG = "brackets"
|
||||||
GAZ_BREAK_TAG = "break"
|
GAZ_BREAK_TAG = "break"
|
||||||
|
|
||||||
|
|
||||||
|
class NoneTagException(Exception):
|
||||||
|
|
||||||
|
def __init__(self, message, xml):
|
||||||
|
super().__init__(message)
|
||||||
|
self.xml = xml
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,10 @@ class GazpreaFuzzer:
|
||||||
self.write_ast() # FIXME sometimes this is none
|
self.write_ast() # FIXME sometimes this is none
|
||||||
|
|
||||||
self.gaz_source_gen = GazUnparser(self.generator.ast, True)
|
self.gaz_source_gen = GazUnparser(self.generator.ast, True)
|
||||||
|
try:
|
||||||
self.gaz_source_gen.unparse()
|
self.gaz_source_gen.unparse()
|
||||||
|
except NoneTagException as n:
|
||||||
|
raise NoneTagException("", n.xml)
|
||||||
|
|
||||||
self.ast = self.generator.ast
|
self.ast = self.generator.ast
|
||||||
self.source = self.gaz_source_gen.source
|
self.source = self.gaz_source_gen.source
|
||||||
|
@ -55,6 +58,6 @@ class GazpreaFuzzer:
|
||||||
pretty: str = dom.toprettyxml()
|
pretty: str = dom.toprettyxml()
|
||||||
|
|
||||||
randint = random.randint(0, 1000)
|
randint = random.randint(0, 1000)
|
||||||
print(randint)
|
print(randint, file=sys.stderr)
|
||||||
with open("debug/ast/debug_{}.xml".format(randint), 'w') as f:
|
with open("debug/ast/debug_{}.xml".format(randint), 'w') as f:
|
||||||
f.write(pretty)
|
f.write(pretty)
|
||||||
|
|
|
@ -1,5 +1,6 @@
|
||||||
import os
|
import os
|
||||||
import random
|
import random
|
||||||
|
import warnings
|
||||||
from contextlib import redirect_stdout
|
from contextlib import redirect_stdout
|
||||||
|
|
||||||
import yaml
|
import yaml
|
||||||
|
@ -10,6 +11,9 @@ import argparse
|
||||||
import xml.dom.minidom
|
import xml.dom.minidom
|
||||||
import xml.etree.ElementTree as ET
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
from constants import NoneTagException
|
||||||
|
|
||||||
|
|
||||||
class Fuzzer():
|
class Fuzzer():
|
||||||
def __init__(self, config: str, batch: int, seed: str, file_name: str = "fuzz"):
|
def __init__(self, config: str, batch: int, seed: str, file_name: str = "fuzz"):
|
||||||
with open(config) as yaml_file:
|
with open(config) as yaml_file:
|
||||||
|
@ -26,11 +30,21 @@ class Fuzzer():
|
||||||
os.mkdir("fuzzer")
|
os.mkdir("fuzzer")
|
||||||
os.mkdir("fuzzer/input")
|
os.mkdir("fuzzer/input")
|
||||||
os.mkdir("fuzzer/debug")
|
os.mkdir("fuzzer/debug")
|
||||||
|
os.mkdir("fuzzer/debug/ast")
|
||||||
os.mkdir("fuzzer/instream")
|
os.mkdir("fuzzer/instream")
|
||||||
os.mkdir("fuzzer/outputs")
|
os.mkdir("fuzzer/outputs")
|
||||||
os.mkdir("fuzzer/ground_truth")
|
os.mkdir("fuzzer/ground_truth")
|
||||||
for i in range(self.batch):
|
for i in range(self.batch):
|
||||||
|
try:
|
||||||
self.fuzzer.fuzz()
|
self.fuzzer.fuzz()
|
||||||
|
except NoneTagException as n:
|
||||||
|
r = random.randint(0, 1000000)
|
||||||
|
warnings.warn("None Tag Exception encountered, writing stack trace and xml to debug/ast/{}.xml\n"
|
||||||
|
"Look for a top-level <argument> tag or send it to Ayrton and I'll see what I can see"
|
||||||
|
"".format(r))
|
||||||
|
with open("fuzzer/debug/ast/{}.xml".format(r), 'w') as f:
|
||||||
|
f.write(xml.dom.minidom.parseString(ET.tostring(self.fuzzer.ast).decode('utf-8')).toprettyxml())
|
||||||
|
continue
|
||||||
dom = xml.dom.minidom.parseString(ET.tostring(self.fuzzer.ast).decode('utf-8'))
|
dom = xml.dom.minidom.parseString(ET.tostring(self.fuzzer.ast).decode('utf-8'))
|
||||||
pretty: str = dom.toprettyxml()
|
pretty: str = dom.toprettyxml()
|
||||||
|
|
||||||
|
@ -41,7 +55,7 @@ class Fuzzer():
|
||||||
with redirect_stdout(y): # Workaround for fuzzer.py:49
|
with redirect_stdout(y): # Workaround for fuzzer.py:49
|
||||||
try:
|
try:
|
||||||
exec(f.read(), globals(), locals())
|
exec(f.read(), globals(), locals())
|
||||||
except OverflowError:
|
except (OverflowError, ZeroDivisionError):
|
||||||
os.system("rm -f fuzzer/ground_truth/{}_{}.py".format(self.file_name, i))
|
os.system("rm -f fuzzer/ground_truth/{}_{}.py".format(self.file_name, i))
|
||||||
continue
|
continue
|
||||||
with open("fuzzer/input/{}_{}.in".format(self.file_name, i), 'w') as f:
|
with open("fuzzer/input/{}_{}.in".format(self.file_name, i), 'w') as f:
|
||||||
|
|
603
unknown_tag.xml
Normal file
603
unknown_tag.xml
Normal file
|
@ -0,0 +1,603 @@
|
||||||
|
<?xml version="1.0" ?>
|
||||||
|
<block>
|
||||||
|
<procedure name="main" return_type="int" args="()">
|
||||||
|
<block>
|
||||||
|
<declaration type="int">
|
||||||
|
<variable name="Mosur" type="int" mut="var"/>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="multiplication" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="multiplication" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="964"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="174"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="354"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-568"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-226"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-405"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-448"/>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</declaration>
|
||||||
|
<return type="int">
|
||||||
|
<literal type="int" value="0"/>
|
||||||
|
</return>
|
||||||
|
</block>
|
||||||
|
</procedure>
|
||||||
|
<argument name="joree" type="int"/>
|
||||||
|
<block>
|
||||||
|
<stream type="std_output">
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-805"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="modulo" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-478"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-61"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</stream>
|
||||||
|
<return type="int">
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="119"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="852"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</return>
|
||||||
|
</block>
|
||||||
|
<function name="bendy" return_type="int">
|
||||||
|
<argument name="campo" type="int"/>
|
||||||
|
<block>
|
||||||
|
<stream type="std_output">
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="182"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="power" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-447"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="539"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-674"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</stream>
|
||||||
|
<return type="int">
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="multiplication" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="division" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-623"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="233"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="84"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-760"/>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="power" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-262"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="940"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-407"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="multiplication" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-132"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="517"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="557"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-795"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="286"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-547"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="multiplication" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-841"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-660"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="division" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="399"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-750"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</return>
|
||||||
|
</block>
|
||||||
|
</function>
|
||||||
|
<procedure name="ghazi" return_type="int">
|
||||||
|
<argument name="chapt" type="int"/>
|
||||||
|
<argument name="nasal" type="int"/>
|
||||||
|
<argument name="thiol" type="int"/>
|
||||||
|
<argument name="hypho" type="int"/>
|
||||||
|
<argument name="remit" type="int"/>
|
||||||
|
<argument name="rebia" type="int"/>
|
||||||
|
<block>
|
||||||
|
<stream type="std_output">
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="331"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="505"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</stream>
|
||||||
|
<return type="int">
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-739"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-845"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="905"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="399"/>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-571"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="282"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="61"/>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-631"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="726"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-685"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</return>
|
||||||
|
<declaration type="int">
|
||||||
|
<variable name="Pokan" type="int" mut="var"/>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-841"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="364"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="division" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="753"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-57"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-321"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="17"/>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="782"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</declaration>
|
||||||
|
<stream type="std_output">
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="645"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="543"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="51"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-779"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="553"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</stream>
|
||||||
|
<declaration type="int">
|
||||||
|
<variable name="byway" type="int" mut="var"/>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<operator op="division" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="959"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-320"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="467"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-160"/>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="addition" type="int">
|
||||||
|
<lhs>
|
||||||
|
<literal type="int" value="-137"/>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<operator op="subtraction" type="int">
|
||||||
|
<lhs>
|
||||||
|
<brackets type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="-23"/>
|
||||||
|
</rhs>
|
||||||
|
</brackets>
|
||||||
|
</lhs>
|
||||||
|
<rhs>
|
||||||
|
<unary op="noop" type="int">
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="371"/>
|
||||||
|
</rhs>
|
||||||
|
</unary>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</operator>
|
||||||
|
</rhs>
|
||||||
|
</declaration>
|
||||||
|
<assignment>
|
||||||
|
<variable name="Pokan" type="int" mut="var"/>
|
||||||
|
<rhs>
|
||||||
|
<literal type="int" value="734"/>
|
||||||
|
</rhs>
|
||||||
|
</assignment>
|
||||||
|
</block>
|
||||||
|
</procedure>
|
||||||
|
</block>
|
Loading…
Reference in a new issue