Skip to content

Instantly share code, notes, and snippets.

View santoshrajan's full-sized avatar

Santosh Rajan santoshrajan

View GitHub Profile
@santoshrajan
santoshrajan / stringParser.swift
Created October 11, 2017 09:18
String Parser in Swift
import Foundation
typealias ParseResult = (output: Any, rest: Substring)?
func stringParser(input: Substring) -> ParseResult {
if input[input.startIndex] != "\"" {
return nil
}
var isEscape = true
let index = input.index() {
@santoshrajan
santoshrajan / string-parser.swift
Created October 11, 2017 07:15
String Parser in Swift 4
import Foundation
typealias ParseResult = (output: Any, rest: Substring)?
func stringParser(input: Substring) -> ParseResult {
if input[input.startIndex] != "\"" {
return nil
}
var isEscape = true
func inspectChar(char: Character) -> Bool {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.backgroundColor = UIColor.lightGrayColor()
var hLayout = HorizontalFitLayout(height: 150)
hLayout.backgroundColor = UIColor.cyanColor()
view.addSubview(hLayout)
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.backgroundColor = UIColor.lightGrayColor()
var vLayout = VerticalFitLayout(width: view.frame.width)
vLayout.backgroundColor = UIColor.cyanColor()
view.addSubview(vLayout)
class VerticalFitLayout: VerticalLayout {
override init(width: CGFloat) {
super.init(width: width)
}
required init(coder aDecoder: NSCoder) {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.backgroundColor = UIColor.lightGrayColor()
var hLayout = HorizontalLayout(height: 200)
hLayout.backgroundColor = UIColor.cyanColor()
view.addSubview(hLayout)
class HorizontalLayout: UIView {
var xOffsets: [CGFloat] = []
init(height: CGFloat) {
super.init(frame: CGRectMake(0, 0, 0, height))
}
required init(coder aDecoder: NSCoder) {
class VerticalScreenLayout: VerticalLayout {
init() {
super.init(width: UIScreen.mainScreen().bounds.width)
}
required init(coder aDecoder: NSCoder) {
fatalError("init(coder:) has not been implemented")
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
view.backgroundColor = UIColor.lightGrayColor()
var vLayout = VerticalLayout(width: view.frame.width)
vLayout.backgroundColor = UIColor.cyanColor()
view.addSubview(vLayout)
class VerticalLayout: UIView {
var yOffsets: [CGFloat] = []
init(width: CGFloat) {
super.init(frame: CGRectMake(0, 0, width, 0))
}
required init(coder aDecoder: NSCoder) {