All Projects â†’ ice1000 â†’ Kt2Dart

ice1000 / Kt2Dart

Licence: AGPL-3.0 license
🔦 [Deprecated] Transpile Kotlin codes into Dart, Make Flutter Great Again

Programming Languages

haskell
3896 projects
kotlin
9241 projects

Projects that are alternatives of or similar to Kt2Dart

Parsec.el
A parser combinator library for Emacs Lisp, similar to Haskell's Parsec library.
Stars: ✭ 98 (+16.67%)
Mutual labels:  parser-combinators
Combine
A parser combinator library for Elixir projects
Stars: ✭ 174 (+107.14%)
Mutual labels:  parser-combinators
Parsica
Parsica - PHP Parser Combinators - The easiest way to build robust parsers.
Stars: ✭ 223 (+165.48%)
Mutual labels:  parser-combinators
Pasukon
JavaScript practical parser generator library using combinators
Stars: ✭ 107 (+27.38%)
Mutual labels:  parser-combinators
Parjs
JavaScript parser-combinator library
Stars: ✭ 145 (+72.62%)
Mutual labels:  parser-combinators
Swiftparsec
A parser combinator library written in the Swift programming language.
Stars: ✭ 192 (+128.57%)
Mutual labels:  parser-combinators
Agdarsec
Total Parser Combinators in Agda
Stars: ✭ 75 (-10.71%)
Mutual labels:  parser-combinators
XParsec
extensible, type-and-source-polymorphic, non-linear applicative parser combinator library for F# 3.0 and 4.0
Stars: ✭ 40 (-52.38%)
Mutual labels:  parser-combinators
Parseback
A Scala implementation of parsing with derivatives
Stars: ✭ 168 (+100%)
Mutual labels:  parser-combinators
Baby
Create models from a JSON file, even a Baby can do it.
Stars: ✭ 214 (+154.76%)
Mutual labels:  parser-combinators
Cppcmb
A generic C++17 parser-combinator library with a natural grammar notation.
Stars: ✭ 108 (+28.57%)
Mutual labels:  parser-combinators
Parsec.py
A universal Python parser combinator library inspired by Parsec library of Haskell.
Stars: ✭ 143 (+70.24%)
Mutual labels:  parser-combinators
Goparsec
Parser combinator in Go. If there are any cross platform issues or backward compatibility issues, please reach out.
Stars: ✭ 198 (+135.71%)
Mutual labels:  parser-combinators
Opal
Self-contained monadic parser combinators for OCaml
Stars: ✭ 105 (+25%)
Mutual labels:  parser-combinators
Funcparserlib
Recursive descent parsing library for Python based on functional combinators
Stars: ✭ 250 (+197.62%)
Mutual labels:  parser-combinators
Pegtl
Parsing Expression Grammar Template Library
Stars: ✭ 1,295 (+1441.67%)
Mutual labels:  parser-combinators
Fireward
A concise and readable language for Firestore security rules, similar to Firebase Bolt.
Stars: ✭ 174 (+107.14%)
Mutual labels:  parser-combinators
Syntax
Write value-driven parsers quickly in Swift with an intuitive SwiftUI-like DSL
Stars: ✭ 134 (+59.52%)
Mutual labels:  parser-combinators
autumn
A Java parser combinator library written with an unmatched feature set.
Stars: ✭ 112 (+33.33%)
Mutual labels:  parser-combinators
Urlformat
Type safe url pattern matching without regular expressions and arguments type mismatches based on parser combinators.
Stars: ✭ 213 (+153.57%)
Mutual labels:  parser-combinators

Kt2Dart

Build status

This is a transpiler which consumes Kotlin codes and convert them into Dart.

I made some CodeWars Katas inspired from this repo:

Why Kt2Dart

Because I want to Make Flutter Great Again.

Flutter, written in Dart, is an awesome mobile developing framework. But Dart is too weak, for the dynamic typing and null-unsafety.

Kotlin is much more powerful. If we can combine the beautiful flutter and the powerful/safe Kotlin, our world will be peaceful forever.

Also, since your dart codes are transpiled from Kotlin, you can use Sound Dart (the term Strong Dart refers to the same thing) compiler to compile the generated Dart codes.

You may find it better to use Kotlin's JavaScript mode (to enable the use of the dynamic type).

Limitations

Kt2Dart supports full-featured Kotlin (because I write this parser according to the strict grammar definition),

but I will not add any support for transpiling:

  • Extensions
  • Labels (label break/continue, label return)
  • import as
  • Anonymous Classes
  • if and when as expressions
  • Typed closures (dart's closure type Function is not generic)
  • Desctructing declaration ({ (a: Int, b: Int): Pair<Int, Int> -> xxx })

While these features are not fully supported:

  • Naming (names like System.`in` are transpiled into System.in directly)
  • Generics (Dart's generics are covariant)

Such (advanced) language features of Kotlin are too complex to transpile (it needs too much analyzing while Kt2Dart is just a simple tool).

And this tool will raise warnings as comments when these stuffs are detected.

Why Haskell

Yeah, as you see, I'm using Haskell in this project. Because Parser Combinators are easy and convenient I want to practise my Haskell skills.

I'm a beginner to Haskell, so if you find any naive code, feel free to tell me (by issuing or mailing) (I'm using hlint).

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].