Skip to content

Instantly share code, notes, and snippets.

View tkojitu's full-sized avatar

aka. bakaiku or @gdgdiler tkojitu

View GitHub Profile
@tkojitu
tkojitu / calc4.java
Created January 30, 2013 15:57
recursive descendent parsing. LL(1). removing left recursion.
package llcalc;
import java.util.StringTokenizer;
class Expr {
Term term;
Expr2 expr2;
Expr(Term term, Expr2 expr2) {
this.term = term;
this.expr2 = expr2;
@tkojitu
tkojitu / calc3.rb
Last active December 11, 2015 22:19
from "The AWK Programming Language" (A.V.Aho, B.W.Kernighan, P.J.Weinberger) recursive descendent parser
# from "The AWK Programming Language" (A.V.Aho, B.W.Kernighan, P.J.Weinberger)
# recursive descendent parser
def expr
e = term
while $tokens[$index] == "+" || $tokens[$index] == "-"
$index += 1
e = ($tokens[$index - 1] == "+") ? e + term : e - term
end
return e
@tkojitu
tkojitu / AppendFile.vbs
Created November 30, 2012 09:20
How to append text in VBScript.
Sub AppendFile(inFilepath, outFilepath)
On Error Resume Next
ForAppending = 8
Set output = gFileSystem.OpenTextFile(outFilepath, ForAppending, True)
Set input = gFileSystem.OpenTextFile(inFilepath)
Do Until input.AtEndOfStream = true
line = input.ReadLine
output.WriteLine line
Loop
input.Close
@tkojitu
tkojitu / run.html
Created October 25, 2012 14:16
Run!
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, width=device-width, target-densitydpi=device-dpi">
<title>Run!</title>
<style>
canvas {
border: 1px solid #9C9898;
}
</style>
@tkojitu
tkojitu / ripple.html
Created October 21, 2012 15:32
touch the canvas to ripple.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, width=device-width, target-densitydpi=device-dpi">
<title>Ripple</title>
<style>
canvas {
border: 1px solid #9C9898;
}
</style>
@tkojitu
tkojitu / drawline.html
Created October 21, 2012 11:00
draw lines in a canvas. translate event coord to canvas coord.
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, width=device-width, target-densitydpi=device-dpi">
<title>Draw Lines</title>
<style>
body {
margin: 0px;
padding: 0px;
}
@tkojitu
tkojitu / rect.html
Created June 10, 2012 04:12
Draw and rotate a rect in JavaScript Canvas.
<html>
<head>
<script type="text/javascript">
var app = {
rect: {
x: 100,
y: 100,
w: 100,
h: 100,
a: 0
@tkojitu
tkojitu / rb.rb
Created May 7, 2012 03:55
okwave.jp/qa/q7454381.html
class MyRecord
def initialize(line)
@alpha, @number, @value = line.split
end
attr_reader :alpha, :number, :value
end
def print_alpha_number(records)
num_keys = records.map{|rec| rec.number}.uniq.sort
alpha_keys = records.map{|rec| rec.alpha}.uniq.sort
include Java
import java.awt.Rectangle
import java.awt.geom.Ellipse2D
import java.awt.geom.Line2D
import java.awt.geom.Point2D
import java.awt.geom.Rectangle2D
import java.lang.Math
import javax.swing.JFrame
@tkojitu
tkojitu / SerialSwitch.java
Created February 27, 2012 14:43
send command to arduino via serial (usb) port.
import gnu.io.CommPortIdentifier;
import gnu.io.PortInUseException;
import gnu.io.SerialPort;
import gnu.io.UnsupportedCommOperationException;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.io.OutputStreamWriter;