jsexportを追加
This commit is contained in:
parent
8beae5e426
commit
ecff061924
|
@ -27,12 +27,11 @@ kotlin {
|
|||
linuxX64()
|
||||
mingwX64()
|
||||
@OptIn(ExperimentalWasmDsl::class)
|
||||
wasmWasi {
|
||||
nodejs()
|
||||
}
|
||||
js {
|
||||
browser()
|
||||
nodejs()
|
||||
binaries.library()
|
||||
generateTypeScriptDefinitions()
|
||||
}
|
||||
|
||||
sourceSets {
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
package dev.usbharu.markdown
|
||||
|
||||
import kotlin.collections.List
|
||||
import kotlin.js.JsExport
|
||||
|
||||
@JsExport
|
||||
sealed class AstNode {
|
||||
open fun print(): String {
|
||||
return toString()
|
||||
}
|
||||
}
|
||||
|
||||
data class RootNode(val node: AstNode) : AstNode() {
|
||||
override fun print(): String {
|
||||
|
@ -41,6 +41,7 @@ data object SeparatorNode : BlockNode() {
|
|||
return "---"
|
||||
}
|
||||
}
|
||||
|
||||
sealed class ListNode : BlockNode()
|
||||
data class DiscListNode(val node: InlineNode, val childList: List<ListNode>) : ListNode()
|
||||
data class DecimalListNode(val node: InlineNode, val childList: List<ListNode>) : ListNode()
|
||||
|
@ -69,3 +70,5 @@ data class PlainText(val text: String) : InlineNode() {
|
|||
return text
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
package dev.usbharu.markdown
|
||||
|
||||
import dev.usbharu.markdown.Token.*
|
||||
import kotlin.collections.List
|
||||
import kotlin.js.JsExport
|
||||
|
||||
@JsExport
|
||||
class Lexer {
|
||||
fun lex(input: String): List<Token> {
|
||||
val tokens = mutableListOf<Token>()
|
||||
|
|
|
@ -1,7 +1,11 @@
|
|||
package dev.usbharu.markdown
|
||||
|
||||
import dev.usbharu.markdown.AstNode.*
|
||||
import dev.usbharu.markdown.Token.*
|
||||
import kotlin.collections.List
|
||||
import kotlin.js.JsExport
|
||||
|
||||
@JsExport
|
||||
class Parser {
|
||||
fun parse(tokens: List<Token>): AstNode {
|
||||
val iterator = PeekableTokenIterator(tokens)
|
||||
|
@ -18,7 +22,7 @@ class Parser {
|
|||
Exclamation -> TODO()
|
||||
is Header -> header(next, iterator)
|
||||
is Html -> TODO()
|
||||
is dev.usbharu.markdown.List -> TODO()
|
||||
is Token.List -> TODO()
|
||||
ParenthesesEnd -> TODO()
|
||||
ParenthesesStart -> TODO()
|
||||
is Quote -> TODO()
|
||||
|
|
|
@ -1,7 +1,9 @@
|
|||
package dev.usbharu.markdown
|
||||
|
||||
sealed class Token()
|
||||
import kotlin.js.JsExport
|
||||
|
||||
@JsExport
|
||||
sealed class Token {
|
||||
data class Text(var text: String) : Token()
|
||||
data class Break(var count: Int) : Token()
|
||||
data class Header(var count: Int) : Token()
|
||||
|
@ -38,3 +40,5 @@ data class TagEnd(var tag: String) : Html()
|
|||
data class AttributeName(val name: String) : Html()
|
||||
data class AttributeValue(val value: String) : Html()
|
||||
data class HtmlValue(val value: String) : Html()
|
||||
}
|
||||
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
package dev.usbharu.markdown
|
||||
|
||||
import dev.usbharu.markdown.Token.*
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertContentEquals
|
||||
import kotlin.test.assertEquals
|
||||
|
|
|
@ -1,5 +1,7 @@
|
|||
package dev.usbharu.markdown
|
||||
|
||||
import dev.usbharu.markdown.AstNode.*
|
||||
import dev.usbharu.markdown.Token.*
|
||||
import kotlin.test.Test
|
||||
import kotlin.test.assertEquals
|
||||
|
||||
|
|
Loading…
Reference in New Issue