UNPKG

minigrace

Version:

A compiler for the Grace programming language

157 lines (156 loc) 7.8 kB
let gracecode_random_sourceFile = "/Users/black/Development/mg/gracelang/minigrace/modules/random.grace"; let gracecode_random_sha256 = "23806b8de44336d17ec701e2f9069a79b59ffcc2b7814857cec61a55b4dfc674"; let gracecode_random_minigraceRevision = "b57591d29fc5ee5270d114920bf671367b8c3ecb"; let gracecode_random_minigraceGeneration = "5171"; if (typeof gctCache !== "undefined") gctCache["random"] = "dialect:\n standard\nfreshScopes:\nmethodTypes:$100:\n between(m:Number)and(n:Number) \u2192 Number\n between0And1 \u2192 Number\n integerIn(m:Number)to(n:Number) \u2192 Number\nmodules:\n standard\npath:\n /Users/black/Development/mg/gracelang/minigrace/modules/random.grace\nscope:$100:\n asDebugString String (go) $scope_string\n asString String (go) $scope_string\n basicAsString String (go) $scope_string\n between(1)and(1) Number (mth) $scope_done\n between0And1 Number (mth) $scope_done\n integerIn(1)to(1) Number (mth) $scope_done\n isMe(1) Boolean (go) $scope_boolean\n myIdentityHash Number (go) $scope_number\nself:\n $100\ntypes:\n"; if (typeof originalSourceLines !== "undefined") { originalSourceLines["random"] = [ "dialect \"standard\"", "", "method between0And1 -> Number {", " // A pseudo-random number between in the interval [0..1)", " native \"c\" code ‹ return alloc_Float64((double)rand() / RAND_MAX);›", " native \"js\" code ‹ return new GraceNum(Math.random());›", "}", "", "method between (m: Number) and (n: Number) -> Number {", " // A pseudo-random number in the interval [m..n)", " ((n - m) * between0And1) + m", "}", "", "method integerIn (m: Number) to (n: Number) -> Number {", " // A pseudo-random integer in the interval [m..n]", " ((n - m + 1) * between0And1).truncated + m", "}" ]; } function gracecode_random() { importedModules["random"] = this; const var_$module = this; this.definitionModule = "random"; this.definitionLine = 1; setLineNumber(1); // compilenode dialect // Dialect "standard" const var_$dialect = do_import("standard", gracecode_standard); this.outer = var_$dialect; this.closureKeys = this.closureKeys || []; this.closureKeys.push("outer_random_1"); this.outer_random_1 = var_$dialect; var func0 = function(argcv) { // method between0And1, line 3 var returnTarget = invocationCount; invocationCount++; const numArgs = arguments.length - 1; if ((numArgs > 0) && (numArgs !== 0)) { raiseTypeArgError("between0And1", 0, numArgs - 0); } setLineNumber(6); // compilenode call var result = GraceDone; // start native code from line 6 return new GraceNum(Math.random()); // end native code insertion setLineNumber(3); // compilenode member var call3 = selfRequest(var_$dialect, "Number", [0]); setLineNumber(6); // typecheck assertTypeOrMsg(result, call3, "result of method between0And1", "Number"); return result; }; // end of method between0And1 setLineNumber(3); // compilenode member var call4 = selfRequest(var_$dialect, "Number", [0]); func0.returnType = call4; this.methods["between0And1"] = func0; func0.methodName = "between0And1"; func0.paramCounts = [0]; func0.paramNames = []; func0.definitionLine = 3; func0.definitionModule = "random"; var func5 = function(argcv, var_m, var_n) { // method between(_)and(_), line 9 var returnTarget = invocationCount; invocationCount++; const numArgs = arguments.length - 1; if ((numArgs > 2) && (numArgs !== 2)) { raiseTypeArgError("between(_)and(_)", 0, numArgs - 2); } setLineNumber(9); // compilenode member var call6 = selfRequest(var_$dialect, "Number", [0]); assertTypeOrMsg(var_m, call6, "argument 1 in request of `between(_)and(_)`", "Number"); var call7 = selfRequest(var_$dialect, "Number", [0]); assertTypeOrMsg(var_n, call7, "argument 2 in request of `between(_)and(_)`", "Number"); setLineNumber(11); // compilenode op // call case 4: other requests var call10 = selfRequest(var_$module, "between0And1", [0]); // call case 4: other requests // call case 4: other requests var diff11 = request(var_n, "-(1)", [1], var_m); var prod9 = request(diff11, "*(1)", [1], call10); var sum8 = request(prod9, "+(1)", [1], var_m); setLineNumber(9); // compilenode member var call12 = selfRequest(var_$dialect, "Number", [0]); setLineNumber(11); // typecheck assertTypeOrMsg(sum8, call12, "result of method between(_)and(_)", "Number"); return sum8; }; // end of method between(_)and(_) setLineNumber(9); // compilenode member var call13 = selfRequest(var_$dialect, "Number", [0]); var call14 = selfRequest(var_$dialect, "Number", [0]); func5.paramTypes = [call13, call14]; var call15 = selfRequest(var_$dialect, "Number", [0]); func5.returnType = call15; this.methods["between(1)and(1)"] = func5; func5.methodName = "between(1)and(1)"; func5.paramCounts = [1, 1]; func5.paramNames = ["m", "n"]; func5.definitionLine = 9; func5.definitionModule = "random"; var func16 = function(argcv, var_m, var_n) { // method integerIn(_)to(_), line 14 var returnTarget = invocationCount; invocationCount++; const numArgs = arguments.length - 1; if ((numArgs > 2) && (numArgs !== 2)) { raiseTypeArgError("integerIn(_)to(_)", 0, numArgs - 2); } setLineNumber(14); // compilenode member var call17 = selfRequest(var_$dialect, "Number", [0]); assertTypeOrMsg(var_m, call17, "argument 1 in request of `integerIn(_)to(_)`", "Number"); var call18 = selfRequest(var_$dialect, "Number", [0]); assertTypeOrMsg(var_n, call18, "argument 2 in request of `integerIn(_)to(_)`", "Number"); setLineNumber(16); // compilenode op // call case 4: other requests // call case 4: other requests var call22 = selfRequest(var_$module, "between0And1", [0]); // call case 4: other requests // call case 4: other requests // call case 4: other requests var diff24 = request(var_n, "-(1)", [1], var_m); var sum23 = request(diff24, "+(1)", [1], new GraceNum(1)); var prod21 = request(sum23, "*(1)", [1], call22); var call20 = request(prod21, "truncated", [0]); var sum19 = request(call20, "+(1)", [1], var_m); setLineNumber(14); // compilenode member var call25 = selfRequest(var_$dialect, "Number", [0]); setLineNumber(16); // typecheck assertTypeOrMsg(sum19, call25, "result of method integerIn(_)to(_)", "Number"); return sum19; }; // end of method integerIn(_)to(_) setLineNumber(14); // compilenode member var call26 = selfRequest(var_$dialect, "Number", [0]); var call27 = selfRequest(var_$dialect, "Number", [0]); func16.paramTypes = [call26, call27]; var call28 = selfRequest(var_$dialect, "Number", [0]); func16.returnType = call28; this.methods["integerIn(1)to(1)"] = func16; func16.methodName = "integerIn(1)to(1)"; func16.paramCounts = [1, 1]; func16.paramNames = ["m", "n"]; func16.definitionLine = 14; func16.definitionModule = "random"; return this; } if (typeof global !== "undefined") global.gracecode_random = gracecode_random; if (typeof window !== "undefined") window.gracecode_random = gracecode_random; gracecode_random.definitionModule = "random"; gracecode_random.sourceFile = gracecode_random_sourceFile; gracecode_random.sha256 = gracecode_random_sha256; gracecode_random.minigraceRevision = gracecode_random_minigraceRevision; gracecode_random.minigraceGeneration = gracecode_random_minigraceGeneration; gracecode_random.imports = [ ["standard", "5016aa3a5b2e0d35a67289d21c1e41cf8d73bef931ceea7b35f6a8b10a1386cf"] ]; gracecode_random.definitionLine = 1;