Simple parser combinator library for Kotlin

Related tags

Utility cakeparse
Overview

Build Status Download

CakeParse

CakeParse is a simple parser combinator library for Kotlin.

Documentation

Documentation is available at the project's GitHub Page.

Build

This project uses Kobalt for its build system. Simply clone the repository and run ./kobaltw compile.

Contribute

Pull requests are welcome. Check the issue tracker to find things to work on.

You might also like...
A helper library to ease the most repetitive codes with simple reusable attributes.

ak-universal-android-helper A helper library to ease the most repetitive codes with simple reusable attributes. AKUAH can help you with many repetitiv

Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platform the code is running.

Trail Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platfor

A Simple Android Library for Kenyan Counties

A Simple Android Library for Kenyan Counties

DiskCache - Simple and readable disk cache for kotlin and android applications

DiskCache Simple and readable disk cache for kotlin and android applications (with journaled lru strategy) This is a simple lru disk cache, based on t

a simple cache for android and java

ASimpleCache ASimpleCache 是一个为android制定的 轻量级的 开源缓存框架。轻量到只有一个java文件(由十几个类精简而来)。 1、它可以缓存什么东西? 普通的字符串、JsonObject、JsonArray、Bitmap、Drawable、序列化的java对象,和 b

✔️ Secure, simple key-value storage for Android
✔️ Secure, simple key-value storage for Android

Hawk 2.0 Secure, simple key-value storage for android Important Note This version has no backward compatibility with Hawk 1+ versions. If you still wa

Create a simple and more understandable Android logs.
Create a simple and more understandable Android logs.

DebugLog Create a simple and more understandable Android logs. #Why? android.util.Log is the most usable library of the Android. But, when the app rel

Ask Permission - Simple RunTime permission manager

Ask Permission https://kishanjvaghela.github.io/Ask-Permission/ Simple RunTime permission manager How to use Add url to your gradle file compile 'com.

Expirable Disk Lru Cache is a secure(with encryption) wrapper for [DiskLruCache](https://github.com/JakeWharton/DiskLruCache) that allows expiring of key/value pairs by specifying evictionTimeSpan. It has very simple API.

ExpirableDiskLruCache ExpirableDiskLruCache is a wrapper for DiskLruCache that allows expiring of key/value pairs by specifying evictionTimeSpan. It h

Comments
  • Stack overflow with large input

    Stack overflow with large input

    I may be doing something wrong, but I get a stack overflow when I do the following:

    val number = token("number", "[0-9]+")
    val space = token("space", "\\s+")
    val goal = oneOrMore(number before optional(space))
    
    val input = "557196 56123\n".repeat(5000)
    println(input)
    val lexed = setOf(number, space).lexer().lex(input).cached()
    println("lexed")
    val result = lexed.parseToEnd(goal).value
    println("Result: $result")
    
    opened by ruckustboom 7
  • Gradle could not resolve dependencies

    Gradle could not resolve dependencies

    When using what's suggested in the docs: compile "me.sargunvohra.lib:CakeParse:1.1.1" gradle gives me a ModuleVersionNotFoundException, but that's easily solved by using lowercase instead. I don't know if this is OS related, specific to the gradle version I use, or just an error in the docs.

    I use Window 10 and Gradle 3.3

    opened by aesy 0
  • Write failure and edge case tests for parsers

    Write failure and edge case tests for parsers

    Need to write tests for:

    • [x] Unexpected end of file when expected a token
    • [x] Unexpected token when expected an end of file
    • [x] Unexpected token when expected another token
    • [x] Instantiate a lexer with tokens that have non-alphanumeric names
    opened by sargunv 0
  • Can't parse a certain grammar

    Can't parse a certain grammar

    I'm trying to use cakeparse to write the grammar for my shell, https://github.com/cbeust/kash and I can't seem to define a simple grammar to allow either "and" commands:

    a && b && c
    

    or "pipe" commands:

    a | b | c
    

    Here is what I have, in short:

            val andCommand = singleCommand and zeroOrMore(andAnd and singleCommand)
            val pipeCommand = singleCommand and zeroOrMore(pipe and singleCommand)
            val goal = andCommand or pipeCommand
    

    With that goal, I can only parse one of these two lines but never both.

    Am I missing something?

    opened by cbeust 2
Owner
Sargun Vohra
Sargun Vohra
Apk parser for java

APK parser lib, for decoding binary XML files, getting APK meta info. Table of Contents Features Get APK-parser Usage 1. APK Info 2. Get Binary XML an

Hsiafan 1.1k Dec 18, 2022
Parser and Expression Evaluator for Logic Statements

LogicParser Parser and Expression Evaluator for Logic Statements: The steps behind the whole process of evaluating a given logic statement encompass:

Bărbuț-Dică Sami 1 Dec 8, 2021
🧹 Error correcting parser plugin

Tidyparse The main goal of this project is to speed up the process of learning a new language by suggesting ways to fix source code. Tidyparse expects

breandan 5 Dec 15, 2022
UE Capability parser used by smartphonecombo.it and cacombos.com

UE Capability Parser Warning Work In progress UE Capability parser used by smartphonecombo.it and cacombos.com $ java -jar uecapabilityparser.jar --he

Andrea Mennillo 4 Oct 16, 2022
Simple-Claim-Form - Android App for creating a simple dynamic form with MVVM architecture

Simple-Claim-Form Android App for creating a simple dynamic form with MVVM archi

Shubham Gangpuri 1 Aug 14, 2022
nestegg - Very simple Kotlin caching library

nestegg - Very simple Kotlin caching library

Runner-be 4 Jun 15, 2022
A simple library for validating user input in forms using annotations.

ValidationKomensky for Android A simple library for validating user input in forms using annotations. Features: Validate all views at once and show fe

Inmite s.r.o. 512 Nov 20, 2022
A small library which will save you from writing the same intent creation code again and again for the most simple tasks

Android Intents A small library which will save you from writing the same intent creation code again and again for the most simple tasks. I found myse

MarvinLabs 420 Nov 20, 2022
A simple Android utils library to write any type of data into cache files and read them later.

CacheUtilsLibrary This is a simple Android utils library to write any type of data into cache files and then read them later, using Gson to serialize

Wesley Lin 134 Nov 25, 2022
A simple and easy to use stopwatch and timer library for android

TimeIt Now with Timer support! A simple and easy to use stopwatch and timer library for android Introduction A stopwatch can be a very important widge

Yashovardhan Dhanania 35 Dec 10, 2022