├── .github └── workflows │ ├── gradle.yml │ └── publish-to-maven-central.yml ├── .gitignore ├── LICENSE ├── README.md ├── benchmarks ├── build.gradle.kts └── src │ ├── commonMain │ └── kotlin │ │ ├── JsonGrammarBenchmark.kt │ │ ├── JsonInput.kt │ │ ├── NaiveJsonGrammar.kt │ │ └── OptimizedJsonGrammar.kt │ └── commonTest │ └── kotlin │ └── Main.kt ├── demo ├── demo-js │ ├── build.gradle.kts │ └── src │ │ └── main │ │ ├── kotlin │ │ └── Main.kt │ │ └── resources │ │ └── main.html ├── demo-jvm │ ├── build.gradle.kts │ └── src │ │ └── main │ │ └── kotlin │ │ └── com │ │ └── example │ │ ├── ArithmeticsEvaluator.kt │ │ ├── BooleanExpression.kt │ │ └── SyntaxTreeDemo.kt └── demo-native │ ├── build.gradle.kts │ ├── gradle.properties │ └── src │ └── nativeMain │ └── kotlin │ └── commandLineParser.kt ├── gradle.properties ├── gradle └── wrapper │ ├── gradle-wrapper.jar │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── settings.gradle.kts ├── src ├── commonMain │ └── kotlin │ │ ├── com │ │ └── github │ │ │ └── h0tk3y │ │ │ └── betterParse │ │ │ ├── combinators │ │ │ ├── AndCombinator.kt │ │ │ ├── MapCombinator.kt │ │ │ ├── OptionalCombinator.kt │ │ │ ├── OrCombinator.kt │ │ │ ├── RepeatCombinator.kt │ │ │ ├── Separated.kt │ │ │ └── SkipParser.kt │ │ │ ├── grammar │ │ │ └── Grammar.kt │ │ │ ├── lexer │ │ │ ├── DefaultTokenizer.kt │ │ │ ├── LambdaToken.kt │ │ │ ├── LiteralToken.kt │ │ │ ├── RegexToken.kt │ │ │ ├── Token.kt │ │ │ ├── TokenMatch.kt │ │ │ ├── TokenMatchesSequence.kt │ │ │ └── Tokenizer.kt │ │ │ ├── parser │ │ │ └── Parser.kt │ │ │ ├── st │ │ │ ├── LiftToSyntaxTree.kt │ │ │ └── SyntaxTree.kt │ │ │ └── utils │ │ │ └── Tuple.kt │ │ └── generated │ │ ├── andFunctions.kt │ │ └── tuples.kt ├── commonTest │ └── kotlin │ │ ├── AndTest.kt │ │ ├── GrammarTest.kt │ │ ├── MapTest.kt │ │ ├── OptionalTest.kt │ │ ├── OrTest.kt │ │ ├── ParserTest.kt │ │ ├── RepeatTest.kt │ │ ├── SeparatedTest.kt │ │ ├── TestLiftToAst.kt │ │ ├── TokenTest.kt │ │ └── TokenizerTest.kt ├── jsMain │ └── kotlin │ │ └── com │ │ └── github │ │ └── h0tk3y │ │ └── betterParse │ │ └── lexer │ │ └── RegexToken.kt ├── jvmMain │ └── kotlin │ │ └── com │ │ └── github │ │ └── h0tk3y │ │ └── betterParse │ │ └── lexer │ │ ├── Language.kt │ │ └── RegexToken.kt ├── jvmTest │ └── kotlin │ │ └── FlagsCompatibilityTest.kt ├── linuxX64Test │ └── kotlin │ │ └── ConcurrentExecution.kt └── nativeMain │ └── kotlin │ └── com │ └── github │ └── h0tk3y │ └── betterParse │ └── lexer │ └── com │ └── github │ └── h0tk3y │ └── betterParse │ └── lexer │ └── RegexToken.kt └── versions.settings.gradle.kts /.github/workflows/gradle.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/.github/workflows/gradle.yml -------------------------------------------------------------------------------- /.github/workflows/publish-to-maven-central.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/.github/workflows/publish-to-maven-central.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/.gitignore -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/README.md -------------------------------------------------------------------------------- /benchmarks/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/benchmarks/build.gradle.kts -------------------------------------------------------------------------------- /benchmarks/src/commonMain/kotlin/JsonGrammarBenchmark.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/benchmarks/src/commonMain/kotlin/JsonGrammarBenchmark.kt -------------------------------------------------------------------------------- /benchmarks/src/commonMain/kotlin/JsonInput.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/benchmarks/src/commonMain/kotlin/JsonInput.kt -------------------------------------------------------------------------------- /benchmarks/src/commonMain/kotlin/NaiveJsonGrammar.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/benchmarks/src/commonMain/kotlin/NaiveJsonGrammar.kt -------------------------------------------------------------------------------- /benchmarks/src/commonMain/kotlin/OptimizedJsonGrammar.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/benchmarks/src/commonMain/kotlin/OptimizedJsonGrammar.kt -------------------------------------------------------------------------------- /benchmarks/src/commonTest/kotlin/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/benchmarks/src/commonTest/kotlin/Main.kt -------------------------------------------------------------------------------- /demo/demo-js/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-js/build.gradle.kts -------------------------------------------------------------------------------- /demo/demo-js/src/main/kotlin/Main.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-js/src/main/kotlin/Main.kt -------------------------------------------------------------------------------- /demo/demo-js/src/main/resources/main.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-js/src/main/resources/main.html -------------------------------------------------------------------------------- /demo/demo-jvm/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-jvm/build.gradle.kts -------------------------------------------------------------------------------- /demo/demo-jvm/src/main/kotlin/com/example/ArithmeticsEvaluator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-jvm/src/main/kotlin/com/example/ArithmeticsEvaluator.kt -------------------------------------------------------------------------------- /demo/demo-jvm/src/main/kotlin/com/example/BooleanExpression.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-jvm/src/main/kotlin/com/example/BooleanExpression.kt -------------------------------------------------------------------------------- /demo/demo-jvm/src/main/kotlin/com/example/SyntaxTreeDemo.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-jvm/src/main/kotlin/com/example/SyntaxTreeDemo.kt -------------------------------------------------------------------------------- /demo/demo-native/build.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-native/build.gradle.kts -------------------------------------------------------------------------------- /demo/demo-native/gradle.properties: -------------------------------------------------------------------------------- 1 | kotlin.native.enableDependencyPropagation=false -------------------------------------------------------------------------------- /demo/demo-native/src/nativeMain/kotlin/commandLineParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/demo/demo-native/src/nativeMain/kotlin/commandLineParser.kt -------------------------------------------------------------------------------- /gradle.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/gradle.properties -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/gradle/wrapper/gradle-wrapper.properties -------------------------------------------------------------------------------- /gradlew: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/gradlew -------------------------------------------------------------------------------- /gradlew.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/gradlew.bat -------------------------------------------------------------------------------- /settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/settings.gradle.kts -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/AndCombinator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/AndCombinator.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/MapCombinator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/MapCombinator.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/OptionalCombinator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/OptionalCombinator.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/OrCombinator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/OrCombinator.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/RepeatCombinator.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/RepeatCombinator.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/Separated.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/Separated.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/SkipParser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/combinators/SkipParser.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/grammar/Grammar.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/grammar/Grammar.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/DefaultTokenizer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/DefaultTokenizer.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/LambdaToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/LambdaToken.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/LiteralToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/LiteralToken.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/RegexToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/RegexToken.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/Token.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/Token.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/TokenMatch.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/TokenMatch.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/TokenMatchesSequence.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/TokenMatchesSequence.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/Tokenizer.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/lexer/Tokenizer.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/parser/Parser.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/parser/Parser.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/st/LiftToSyntaxTree.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/st/LiftToSyntaxTree.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/st/SyntaxTree.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/com/github/h0tk3y/betterParse/st/SyntaxTree.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/com/github/h0tk3y/betterParse/utils/Tuple.kt: -------------------------------------------------------------------------------- 1 | package com.github.h0tk3y.betterParse.utils 2 | 3 | public interface Tuple -------------------------------------------------------------------------------- /src/commonMain/kotlin/generated/andFunctions.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/generated/andFunctions.kt -------------------------------------------------------------------------------- /src/commonMain/kotlin/generated/tuples.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonMain/kotlin/generated/tuples.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/AndTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/AndTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/GrammarTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/GrammarTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/MapTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/MapTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/OptionalTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/OptionalTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/OrTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/OrTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/ParserTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/ParserTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/RepeatTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/RepeatTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/SeparatedTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/SeparatedTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/TestLiftToAst.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/TestLiftToAst.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/TokenTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/TokenTest.kt -------------------------------------------------------------------------------- /src/commonTest/kotlin/TokenizerTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/commonTest/kotlin/TokenizerTest.kt -------------------------------------------------------------------------------- /src/jsMain/kotlin/com/github/h0tk3y/betterParse/lexer/RegexToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/jsMain/kotlin/com/github/h0tk3y/betterParse/lexer/RegexToken.kt -------------------------------------------------------------------------------- /src/jvmMain/kotlin/com/github/h0tk3y/betterParse/lexer/Language.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/jvmMain/kotlin/com/github/h0tk3y/betterParse/lexer/Language.kt -------------------------------------------------------------------------------- /src/jvmMain/kotlin/com/github/h0tk3y/betterParse/lexer/RegexToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/jvmMain/kotlin/com/github/h0tk3y/betterParse/lexer/RegexToken.kt -------------------------------------------------------------------------------- /src/jvmTest/kotlin/FlagsCompatibilityTest.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/jvmTest/kotlin/FlagsCompatibilityTest.kt -------------------------------------------------------------------------------- /src/linuxX64Test/kotlin/ConcurrentExecution.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/linuxX64Test/kotlin/ConcurrentExecution.kt -------------------------------------------------------------------------------- /src/nativeMain/kotlin/com/github/h0tk3y/betterParse/lexer/com/github/h0tk3y/betterParse/lexer/RegexToken.kt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/src/nativeMain/kotlin/com/github/h0tk3y/betterParse/lexer/com/github/h0tk3y/betterParse/lexer/RegexToken.kt -------------------------------------------------------------------------------- /versions.settings.gradle.kts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/h0tk3y/better-parse/HEAD/versions.settings.gradle.kts --------------------------------------------------------------------------------