Skip to content

Instantly share code, notes, and snippets.

@disnet
Last active December 31, 2015 04:28

Revisions

  1. disnet renamed this gist Dec 13, 2013. 1 changed file with 0 additions and 0 deletions.
    File renamed without changes.
  2. disnet revised this gist Dec 13, 2013. 1 changed file with 6 additions and 6 deletions.
    12 changes: 6 additions & 6 deletions do.js
    Original file line number Diff line number Diff line change
    @@ -1,10 +1,10 @@
    let let = macro {
    rule { async $vars ... = $fname ... ($params ...); $rest ...} => {
    $fname ... ($params ..., function (err, $vars ...) {
    if (err) throw err;
    $rest ...
    })
    }
    rule { async $vars ... = $fname ... ($params ...); $rest ...} => {
    $fname ... ($params ..., function (err, $vars ...) {
    if (err) throw err;
    $rest ...
    })
    }
    }

    var buffer = new Buffer(1024);
  3. disnet revised this gist Dec 13, 2013. 1 changed file with 32 additions and 7 deletions.
    39 changes: 32 additions & 7 deletions do.js
    Original file line number Diff line number Diff line change
    @@ -1,13 +1,38 @@
    let do = macro {
    rule { $vars (,) ... = $fname ... ($params ...); $rest ...} => {
    $fname ... ($params ..., function ($vars (,) ...) { $rest ... })
    let let = macro {
    rule { async $vars ... = $fname ... ($params ...); $rest ...} => {
    $fname ... ($params ..., function (err, $vars ...) {
    if (err) throw err;
    $rest ...
    })
    }
    }

    var buffer = new Buffer(1024);

    do err, infile = fs.open("/tmp/in.txt");
    do err, outfile = fs.open("/tmp/out.txt");
    do err, bytesRead, buffer = fs.read(infile, buffer, 0, 1024, 0);
    do err, bytesWritten, buffer = fs.write(outfile, buffer, 0, 1024, 0);
    let async infile = fs.open("/tmp/in.txt");
    let async outfile = fs.open("/tmp/out.txt");
    let async bytesRead, buffer = fs.read(infile, buffer, 0, 1024, 0);
    let async bytesWritten, buffer = fs.write(outfile, buffer, 0, 1024, 0);
    console.log("We read " + bytesRead + " bytes and wrote " + bytesWritten + " bytes.");


    // compiles to:

    var buffer$188 = new Buffer(1024);
    fs.open('/tmp/in.txt', function (err$190, infile$191) {
    if (err$190)
    throw err$190;
    fs.open('/tmp/out.txt', function (err$193, outfile$194) {
    if (err$193)
    throw err$193;
    fs.read(infile$191, buffer$188, 0, 1024, 0, function (err$196, bytesRead$197, buffer$188) {
    if (err$196)
    throw err$196;
    fs.write(outfile$194, buffer$188, 0, 1024, 0, function (err$200, bytesWritten$201, buffer$188) {
    if (err$200)
    throw err$200;
    console.log('We read ' + bytesRead$197 + ' bytes and wrote ' + bytesWritten$201 + ' bytes.');
    });
    });
    });
    });
  4. disnet created this gist Dec 12, 2013.
    13 changes: 13 additions & 0 deletions do.js
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,13 @@
    let do = macro {
    rule { $vars (,) ... = $fname ... ($params ...); $rest ...} => {
    $fname ... ($params ..., function ($vars (,) ...) { $rest ... })
    }
    }

    var buffer = new Buffer(1024);

    do err, infile = fs.open("/tmp/in.txt");
    do err, outfile = fs.open("/tmp/out.txt");
    do err, bytesRead, buffer = fs.read(infile, buffer, 0, 1024, 0);
    do err, bytesWritten, buffer = fs.write(outfile, buffer, 0, 1024, 0);
    console.log("We read " + bytesRead + " bytes and wrote " + bytesWritten + " bytes.");