-
Ruben Daniels authored45e8224c
//
// memri-parser
//
// Copyright © 2020 Memri. All rights reserved.
//
import Foundation
let topic = "view" // "all" | "view" | "expression"
// TODO: Create syntax highlighter for xcode:
// https://github.com/erica/TypeScript-xclangspec/blob/master/TypeScript.xclangspec
if topic == "view" {
let fileURL = URL(string: "file:///Users/rubendaniels/Development/memri-parser/memri-parser/view-parser/example/example.view")
let code = try String(contentsOf: fileURL!, encoding: String.Encoding.utf8)
let dt = Date()
let viewDef = ViewDefinitionParser(code,
lookup: { lookup in return 10 },
execFunc: { lookup, args in return 20 })
let definitions = try viewDef.parse()
print (Date().timeIntervalSince(dt))
print(definitions)
}
else if topic == "expression" || topic == "all" {
print("ADD TEST FOR ESCAPING { in startInStringMode")
let code = """
!(test + -5.63537) or 4/3 ? variable.func() : me.address[primary = true].country ? ((4+5 * 10) + test[10]) : 'asdads\\'asdad' + ''
"""
let dt = Date()
let expr = Expression(code,
startInStringMode: false,
lookup: { lookup in return 10 },
execFunc: { lookup, args in return 20 })
print(try expr.execute() ?? "nil")
print (Date().timeIntervalSince(dt))
}