mirror of
https://github.com/nicklockwood/SwiftFormat.git
synced 2026-06-16 10:34:34 +00:00
31 lines
745 B
Swift
31 lines
745 B
Swift
//
|
|
// main.swift
|
|
// REPL
|
|
//
|
|
// Created by Nick Lockwood on 02/03/2018.
|
|
// Copyright © 2018 Nick Lockwood. All rights reserved.
|
|
//
|
|
|
|
import Foundation
|
|
|
|
/// Prevent control characters confusing parser
|
|
private let start = UnicodeScalar(63232)!
|
|
private let end = UnicodeScalar(63235)!
|
|
private let cursorCharacters = CharacterSet(charactersIn: start ... end)
|
|
|
|
/// Persistent state
|
|
private let state = State()
|
|
|
|
while true {
|
|
print("> ", terminator: "")
|
|
guard var input = readLine() else { break }
|
|
input = String(input.unicodeScalars.filter { !cursorCharacters.contains($0) })
|
|
do {
|
|
if let result = try evaluate(input, state: state) {
|
|
print(result)
|
|
}
|
|
} catch {
|
|
print("error: \(error)")
|
|
}
|
|
}
|