2023-11-18 10:59:00 -07:00
|
|
|
import yaml
|
|
|
|
import ast_parser
|
2023-11-18 20:13:15 -07:00
|
|
|
from ast_generator.ast_generator import *
|
|
|
|
from ast_parser.gaz_unparser import *
|
|
|
|
|
2023-11-18 10:59:00 -07:00
|
|
|
|
2023-11-17 16:57:53 -07:00
|
|
|
class GazpreaFuzzer:
|
2023-11-18 10:59:00 -07:00
|
|
|
def __init__(self, config: str):
|
|
|
|
# parse a yaml config file with path in config
|
|
|
|
# and set the appropriate parameters
|
|
|
|
with open(config) as yaml_file:
|
|
|
|
settings: dict = yaml.safe_load(yaml_file)
|
|
|
|
self.settings = settings
|
|
|
|
|
|
|
|
self.parser = None
|
2023-11-18 20:13:15 -07:00
|
|
|
self.generator = AstGenerator(settings)
|
|
|
|
|
|
|
|
self.ast = None
|
|
|
|
self.source = None
|
|
|
|
self.out = None
|
|
|
|
|
|
|
|
def fuzz(self):
|
|
|
|
self.generator.generate_ast()
|
|
|
|
self.parser = AstParser(self.generator.ast, True)
|
|
|
|
self.parser.unparse()
|
2023-11-18 10:59:00 -07:00
|
|
|
|
2023-11-18 20:13:15 -07:00
|
|
|
self.ast = self.generator.ast
|
|
|
|
self.source = self.parser.input
|