(apply-grammar-updates grammar grammar-updates)
Replace the generators in the grammar as defined by the list of {:path PATH :value VALUE} maps in grammar-updates. Find each :path in a grammar and replace it with :value (using specter's setval). This allows us to replace generators in the grammar with references to other generators (such as real generators from a Clojure namespace).
Replace the generators in the grammar as defined by the list of {:path PATH :value VALUE} maps in grammar-updates. Find each :path in a grammar and replace it with :value (using specter's setval). This allows us to replace generators in the grammar with references to other generators (such as real generators from a Clojure namespace).
(ebnf-gen ebnf)
(ebnf-gen ctx ebnf)
Takes an path to an EBNF grammar file and return a test.check generator. If the start is specified then this the name of the rule to use as the starting rule of the grmmar. If start is not specified then the first rule in the grammar file is used as the starting rule.
Takes an path to an EBNF grammar file and return a test.check generator. If the start is specified then this the name of the rule to use as the starting rule of the grmmar. If start is not specified then the first rule in the grammar file is used as the starting rule.
(grammar->generator-defs-source {:keys [start] :as ctx} grammar)
Takes an grammar (loaded using load-grammar) and returns the text of a namespace with top-level defines (defs) for all the rules. If the :start is specified in the ctx then this the name of the rule to use as the starting rule of the grammar. If :start is not specified then the first rule in the grammar file is used as the starting rule. Only the start rule flattens the generated values into a final string.
Takes an grammar (loaded using load-grammar) and returns the text of a namespace with top-level defines (defs) for all the rules. If the :start is specified in the ctx then this the name of the rule to use as the starting rule of the grammar. If :start is not specified then the first rule in the grammar file is used as the starting rule. Only the start rule flattens the generated values into a final string.
(grammar->generator-func-source {:keys [function] :as ctx} grammar)
Takes an grammar (loaded using load-grammar) and returns the text of a namespace with a single Clojure function. The function takes an optional weights map and returns a map of all the rules as generators (indexed by rule-name keyword).
Takes an grammar (loaded using load-grammar) and returns the text of a namespace with a single Clojure function. The function takes an optional weights map and returns a map of all the rules as generators (indexed by rule-name keyword).
(grammar->generator-obj {:keys [start] :as ctx} grammar)
Return a a new generator object based on the context and instacheck grammar object.
Return a a new generator object based on the context and instacheck grammar object.
(load-grammar ebnf)
Takes an EBNF grammar test string and returns an instacheck grammar (via parser->grammar).
Takes an EBNF grammar test string and returns an instacheck grammar (via parser->grammar).
(parse parser text & [location])
Use parser to parse text. On success returns the parsed AST. On error, throws an ex-info map containing the :failure (instaparse Failure object), :text (the original text), and :location (optional location parameter).
Use parser to parse text. On success returns the parsed AST. On error, throws an ex-info map containing the :failure (instaparse Failure object), :text (the original text), and :location (optional location parameter).
(parse-weights parser text-objs)
Use parser to parse a sequence of text description objects {:text text :location location}. Returns a weights map with the weights set to the number of times that path in the grammar was followed/used across all the texts from text-objs.
Use parser to parse a sequence of text description objects {:text text :location location}. Returns a weights map with the weights set to the number of times that path in the grammar was followed/used across all the texts from text-objs.
(parse-weights-from-files parser files)
Wrapper around parse-weights that marshals the text objects from a list of file paths.
Wrapper around parse-weights that marshals the text objects from a list of file paths.
(parser->grammar parser)
Takes a instaparse parser and returns an instacheck grammar: the :grammar value from the parser with a metadata map containing the start rule (:start).
Takes a instaparse parser and returns an instacheck grammar: the :grammar value from the parser with a metadata map containing the start rule (:start).
(run-check opts gen-to-check check-fn report-fn)
Run quick-check against a generator (gen-to-check) using a check function (check-fn) and reporter functon (report-fn). Execution options (opts) supported are :iterations (default: 10), :max-size (default: 200), and :seed.
Run quick-check against a generator (gen-to-check) using a check function (check-fn) and reporter functon (report-fn). Execution options (opts) supported are :iterations (default: 10), :max-size (default: 200), and :seed.
(update-generator-obj obj & {:keys [weights start]})
Return a new generator object with runtime properties adjusted (those that don't require eval of the function source again). Only weights and start rule are supported currently.
Return a new generator object with runtime properties adjusted (those that don't require eval of the function source again). Only weights and start rule are supported currently.
cljdoc is a website building & hosting documentation for Clojure/Script libraries
× close