Skip to content
tboby edited this page Jul 13, 2018 · 3 revisions

CWTools.Parser is .txt file -> dumb (but strongly typed) data structures. See Types.fs for that structure

CKParser.api is the parser for mod files. It doubles as a syntax validator and parser (as in it rejects bad syntax id = = 5 but is fine with nonsense like thing = { id id = 5 })

CKPrinter.api is a pretty printer for the above (which I don't really use much, but does work)

CWTools.Process takes the above result (if success) and turns it into a richer, more useful tree. CK2Process.processEventFile is the simplest one. The result is a Node, which has Children (Nodes/Clauses), Leaves (key/value) or LeafValues (values with no key). There a bunch of helper methods on there for modifying, and you can use ToRaw to get back to the dumb datastructure, and then print.

CWTools.Games is the heavy-weight full mod analyzer. Game.fs has the API, but you basically point it at a directory and it processes it all and you can ask it for the errors back, as well as some other diagnostics (like completion)

CWTools.Localisation is the localisation parsers, not too complicated

Validation is just used by Games to actually validate :)