for(;s=readline();print(s))for(;!s[19];)s=" "+s+"\0"
for(;s=readline();)print(" ".slice(s.length/2),s)
main(c,s){for(;gets(s);puts())memset(s-c,32,c=10-strlen(s)/2);}
main(c,s){for(;gets(s);printf("%*s\n",10-c/2+c,s))c=strlen(s);}
// A response to jashkenas's fine proposal for minimalist JavaScript classes. | |
// Harmony always stipulated classes as sugar, so indeed we are keeping current | |
// JavaScript prototype semantics, and classes would only add a syntactic form | |
// that can desugar to ES5. This is mostly the same assumption that Jeremy | |
// chose, but I've stipulated ES5 and used a few accepted ES.next extensions. | |
// Where I part company is on reusing the object literal. It is not the syntax | |
// most classy programmers expect, coming from other languages. It has annoying | |
// and alien overhead, namely colons and commas. For JS community members who |
for(;s=readline();print(s))for(;!s[19];)s=" "+s+"\0"
for(;s=readline();)print(" ".slice(s.length/2),s)
main(c,s){for(;gets(s);puts())memset(s-c,32,c=10-strlen(s)/2);}
main(c,s){for(;gets(s);printf("%*s\n",10-c/2+c,s))c=strlen(s);}
Here are some of the "gotchas" I've encountered when I converted all the javascript code into coffeescript. (BTW, this is gathered while coding for YourMechanic.com, a very cool mobile auto repair service.)
Disclaimer: Coffeescript is a great productivity booster for me personally. Even with all the things outlined below, it is still way better than javascript. None of these should discourage you from jumping into it right away.
(Things that generate wrong code silently)
code = input | |
.replace /\/\/.*/gm '' # remove comments | |
.trim! | |
.split /\s+/ # turn into lines | |
.filter (it, i) -> # build symbol table and remove labels | |
if it.match /\(([A-Za-z\._$:][\w\.$:]*)\)$/ # that[1] is the first capturing group | |
symbols[that[1]] = i - len++ # len++ adjusts the symbol's line number to the filtered array | |
return false | |
true # keep actual instructions | |
.map -> # parse instructions |
_ = require 'underscore' | |
{Assign, Value, Literal, Access, Block, Class, Op, Obj, Arr, For, Index, Call, Return, If, Throw} = nodes = require '../nodes' | |
exports.originals = originals = {} | |
exports.codeblock = codeblock = (block) -> | |
return block unless block? | |
if typeof block is 'function' |
coffee = require 'coffee-script' | |
https = require 'https' | |
npm = require 'npm' | |
Irc = require 'irc-js' | |
cradle = require 'cradle' | |
{GitHubApi} = require 'github' | |
request = require 'request' | |
gitHubApi = new GitHubApi() | |
githubIssueApi = gitHubApi.getIssueApi() | |
githubObjectApi = gitHubApi.getObjectApi() |
// Coffee Script compiler wrapper for WSH JScript (must be placed in the same directory as coffee-script.js) | |
// Usage: cscript coffee-maker.js [--watch] file | |
// inspired by http://kennyj-jp.blogspot.com/2011/01/coffeescriptwindows.html | |
var fs = WScript.CreateObject("Scripting.FileSystemObject"); | |
var scriptPath = WScript.ScriptFullName.slice( | |
0, -WScript.ScriptName.length); | |
eval(fs.OpenTextFile(scriptPath + "coffee-script.js", 1).ReadAll()); | |
function compileFile(file) { |
// ==uc== | |
// @include * | |
// @exclude chrome://browser/content/preferences/preferences.xul | |
// ==/uc== | |
(function Bug330458() { | |
var orgLoadOverlay = document.loadOverlay; | |
var queue = []; | |
var loading = false; |
CmdUtils.CreateCommand({ | |
names: ["java"], | |
arguments: [{role: "object", | |
nountype: noun_arb_text, | |
label: "search criteria"}], | |
icon: "http://www.sun.com/favicon.ico", | |
preview: "Searches The Java 6 API.", | |
help: "Enter the name of the Java class or package for which you would like to see the documentation.", | |
author: {name: "KS", email: "tss@cornbread.com"}, |
/* Universal Subtitles v0.72a */ | |
CmdUtils.CreateCommand({ | |
names: ["subtitle"], | |
description: "Add subtitles to any web video using open standards.", | |
help: "Open a video or select an URL and type subtitle", | |
author: { | |
name: "Michael Baer", | |
homepage: "http://twitter.com/shaytards", | |
}, | |
license: "GPL", |