@kstory/core
Version: 
Core parser and lexer for KStory interactive fiction language
72 lines (50 loc) • 1.31 kB
Markdown
# @kstory/core
Core parser and lexer for the KStory interactive fiction language.
## Features
- **Lexer**: Tokenizes KStory source code
- **Parser**: Builds Abstract Syntax Tree (AST) from tokens
- **AST Types**: TypeScript definitions for all AST nodes
- **Error Handling**: Comprehensive error reporting with position information
## Installation
```bash
npm install @kstory/core
# or
pnpm add @kstory/core
```
## Usage
```typescript
import { parseFromSource, Lexer } from '@kstory/core';
// Parse source code directly
const result = parseFromSource(`
== Chapter_One
" Hello, world!
+ Continue
  -> Chapter_Two
`);
console.log(result.program.sections);
console.log(result.issues);
// Use lexer directly
const lexer = new Lexer(sourceCode);
lexer.process();
const tokens = lexer.getTokens();
```
## API
### `parseFromSource(source: string): ParseResult`
Parses KStory source code and returns AST with any parsing issues.
### `Lexer`
Tokenizes source code into tokens.
### Types
- `AstProgram`: Root AST node
- `AstSection`: Story section/chapter
- `AstStatement`: Statement types (Replica, Choice, Goto, Call)
- `AstTag`: Metadata tags
- `ParseResult`: Result of parsing with program and issues
## Development
```bash
# Build
pnpm run build
# Test
pnpm run test
# Lint
pnpm run lint
```