Skip to content

Commit 1e3d82c

Browse files
StartAutomatingStartAutomating
authored andcommitted
feat: Turtle.js.parse ( Fixes #327 )
1 parent 7875165 commit 1e3d82c

File tree

1 file changed

+55
-0
lines changed

1 file changed

+55
-0
lines changed

Turtle.types.ps1xml

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8416,6 +8416,61 @@ param()
84168416
<Name>min.js</Name>
84178417
<Value>min: ({x:0.0, y:0.0})</Value>
84188418
</NoteProperty>
8419+
<NoteProperty>
8420+
<Name>parse.js</Name>
8421+
<Value>function parse() {
8422+
let _ = this
8423+
var memberNames = []
8424+
var objectPrototype = Object.getPrototypeOf(this)
8425+
var propertyNames = Object.getOwnPropertyNames(this)
8426+
var memberNameLookup = {}
8427+
for (let memberName of propertyNames) {
8428+
if (memberName == "constructor") { continue }
8429+
memberNameLookup[memberName.toUpperCase(memberName)] = memberName
8430+
}
8431+
8432+
const parsed = []
8433+
8434+
const unbound = []
8435+
8436+
nextArgument: for (let argNumber = 0 ; argNumber &lt; arguments.length; argNumber++) {
8437+
let arg = arguments[argNumber]
8438+
8439+
if (typeof(arg) == "string" &amp;&amp; ! memberNameLookup[arg.toUpperCase()]) {
8440+
unbound.push(arg)
8441+
continue nextArgument
8442+
}
8443+
8444+
if (typeof(arg) != "string") {
8445+
unbound.push(arg)
8446+
continue nextArgument
8447+
}
8448+
8449+
let memberName = arg.toUpperCase()
8450+
let memberInfo = memberNameLookup[arg.toUpperCase()]
8451+
let memberArgs = []
8452+
lookingForParameters: for (
8453+
let memberArgIndex = argNumber + 1;
8454+
memberArgIndex &lt; arguments.length;
8455+
memberArgIndex++
8456+
) {
8457+
let memberArg = arguments[memberArgIndex]
8458+
if (typeof(memberArg) == "string" &amp;&amp; memberNameLookup[memberArg.toUpperCase()]) {
8459+
argNumber = memberArgIndex - 1
8460+
break lookingForParameters
8461+
}
8462+
memberArgs.push(memberArg)
8463+
}
8464+
8465+
parsed.push({
8466+
method: memberNameLookup[memberName],
8467+
arguments: memberArgs
8468+
})
8469+
}
8470+
8471+
return parsed
8472+
}</Value>
8473+
</NoteProperty>
84198474
<NoteProperty>
84208475
<Name>pathData.js</Name>
84218476
<Value>function get_pathData() {

0 commit comments

Comments
 (0)