SweetSyntax is a powerful YAML-based generic parser and AST explorer for analyzing programming languages.
Written in Nim, it provides a flexible foundation for building high-level parsers, syntax highlighters, domain-specific languages, bundlers, minifiers, obfuscators, linters, or any sweet tool that requires a structured representation of source code.
Imports
-
sweetsyntax/config, sweetsyntax/sweetlexer, sweetsyntax/engine/ast, sweetsyntax/engine/parser, sweetsyntax/renderers/highlight, sweetsyntax/languages/js, sweetsyntax/languages/ts, sweetsyntax/languages/nim, sweetsyntax/languages/c, sweetsyntax/languages/php, sweetsyntax/languages/ruby, sweetsyntax/languages/go
Exports
-
AssignmentDef, Assoc, AssocKind, AstNode, BlocksSpec, Definition, Definitions, FeaturesSpec, IdentsTable, InfixEntry, InfixGroup, KeywordScopes, KnownSyntax, LanguageFeature, OperatorsSpec, Pattern, PostfixGroup, PrefixGroup, StatementSpec, StatementsSpec, SweetFilter, SweetLexerInit, SweetSpec, SweetSyntax, SymbolsTable, TernaryDef, apache, assocLeft, assocRight, c, cmake, cpp, crystal, csharp, css, csv, d, docker, ejs, featAdjacentConcat, featArrowFn, featAsync, featCommandSyntax, featGenerators, featLabeledStmt, featRegex, featTemplateLit, getKnownSyntax, go, handlebars, haskell, html, ini, java, jinja2, js, json, knownSyntaxForExt, knownSyntaxTable, kotlin, leftAssoc, liquid, lua, make, md, newSyntax, nginx, nim, objc, ocaml, parseHook, parseHook, parseHook, parseHook, parseHook, parseHook, perl, php, py, rightAssoc, ruby, rust, shell, swift, systemd, toml, ts, xml, yaml, zig, LexerMark, SweetLexer, SweetLexerError, SweetTokenKind, Token, charAt, closeLexer, getContext, getFullInput, getLexeme, getToken, getTokenValue, initLexer, initLexer, initLexerFromFile, initLexerFromFile, initLexerFromMemFile, lastTokValue, markLexer, resetLexer, restoreLexer, tkChar, tkComment, tkDocComment, tkFloat, tkIdentifier, tkInt, tkPunct, tkRegex, tkString, LeafNodes, Node, NodeKind, OpenAstProgram, [], [], []=, add, add, dumpTree, dumpTree, items, len, newBlockNode, newDocComment, newEmptyNode, newFunction, newFunction, newIdent, newIdent, newInlineComment, newNode, newNode, newPostfix, pairs, stamp, stamp, stampFrom, treeRepr, EnumInitKind, EnumMember, ExpressionHandler, GenericParser, OpenAstParsingError, ParsingCallback, PrefixHandler, StmtHandler, StripKind, StripSpan, applyPrecompiled, compile, consumedEnd, error, expect, expectWalk, exprHandler, markPos, parseArrayLiteral, parseBlock, parseCommaExpr, parseCommentGeneric, parseExpression, parseGroupExpr, parseHexFloat, parseIndentBlock, parseLiteral, parseObjectLiteral, parseScript, parseStatement, prefixHandler, stampMissing, stmtHandler, stripCurr, stripCurrPast, stripError, stripSince, walk, walkOpt, HighlightFormat, SweetHighlightError, highlight, highlightFile, syntaxForExt, syntaxForFilename