--- /dev/null
+(eval-when-compile
+ (require 'its)
+ (require 'cl))
+
+(eval-when (compile)
+ (defconst its-compaction-enable t))
+
+(defgroup greek nil
+ "Greek Input Method"
+ :group 'its)
+
+(define-its-state-machine its-greek-jis-map
+ "greek-jis" "\e$B&8\e(B" Greek
+ "\e$B&%&K&K&G&M&I&J&A\e(B: Greek keyboard layout (JIS X0208.1983)
+
+The layout is same as greek, but uses JIS characters.
+Sorry, accents and terminal sigma are not supported in JIS."
+
+ (its-defrule "1" "\e$B#1\e(B")
+ (its-defrule "2" "\e$B#2\e(B")
+ (its-defrule "3" "\e$B#3\e(B")
+ (its-defrule "4" "\e$B#4\e(B")
+ (its-defrule "5" "\e$B#5\e(B")
+ (its-defrule "6" "\e$B#6\e(B")
+ (its-defrule "7" "\e$B#7\e(B")
+ (its-defrule "8" "\e$B#8\e(B")
+ (its-defrule "9" "\e$B#9\e(B")
+ (its-defrule "0" "\e$B#0\e(B")
+ (its-defrule "-" "\e$B!]\e(B")
+ (its-defrule "=" "\e$B!a\e(B")
+ (its-defrule "`" "\e$B!F\e(B")
+ (its-defrule "q" "\e$B!&\e(B")
+ (its-defrule "w" "\e$B&R\e(B")
+ (its-defrule "e" "\e$B&E\e(B")
+ (its-defrule "r" "\e$B&Q\e(B")
+ (its-defrule "t" "\e$B&S\e(B")
+ (its-defrule "y" "\e$B&T\e(B")
+ (its-defrule "u" "\e$B&H\e(B")
+ (its-defrule "i" "\e$B&I\e(B")
+ (its-defrule "o" "\e$B&O\e(B")
+ (its-defrule "p" "\e$B&P\e(B")
+ (its-defrule "[" "\e$B!N\e(B")
+ (its-defrule "]" "\e$B!O\e(B")
+ (its-defrule "a" "\e$B&A\e(B")
+ (its-defrule "s" "\e$B&R\e(B")
+ (its-defrule "d" "\e$B&D\e(B")
+ (its-defrule "f" "\e$B&U\e(B")
+ (its-defrule "g" "\e$B&C\e(B")
+ (its-defrule "h" "\e$B&G\e(B")
+ (its-defrule "j" "\e$B&N\e(B")
+ (its-defrule "k" "\e$B&J\e(B")
+ (its-defrule "l" "\e$B&K\e(B")
+ (its-defrule ";" "\e$B!G\e(B")
+ (its-defrule "'" "\e$B!G\e(B")
+ (its-defrule "\\" "\e$B!@\e(B")
+ (its-defrule "z" "\e$B&F\e(B")
+ (its-defrule "x" "\e$B&V\e(B")
+ (its-defrule "c" "\e$B&W\e(B")
+ (its-defrule "v" "\e$B&X\e(B")
+ (its-defrule "b" "\e$B&B\e(B")
+ (its-defrule "n" "\e$B&M\e(B")
+ (its-defrule "m" "\e$B&L\e(B")
+ (its-defrule "," ", ")
+ (its-defrule "." ". ")
+ (its-defrule "/" "\e$B!?\e(B")
+
+ (its-defrule "!" "\e$B!*\e(B")
+ (its-defrule "@" "\e$B!w\e(B")
+ (its-defrule "#" "\e$B!t\e(B")
+ (its-defrule "$" "\e$B!t\e(B")
+ (its-defrule "%" "\e$B!s\e(B")
+ (its-defrule "^" "\e$B!0\e(B")
+ (its-defrule "&" "\e$B!u\e(B")
+ (its-defrule "*" "\e$B!v\e(B")
+ (its-defrule "(" "\e$B!J\e(B")
+ (its-defrule ")" "\e$B!K\e(B")
+ (its-defrule "_" "\e$B!2\e(B")
+ (its-defrule "+" "\e$B!\\e(B")
+ (its-defrule "~" "\e$B!1\e(B")
+ (its-defrule "Q" "\e$B!]\e(B")
+ (its-defrule "W" "\e$B&2\e(B")
+ (its-defrule "E" "\e$B&%\e(B")
+ (its-defrule "R" "\e$B&1\e(B")
+ (its-defrule "T" "\e$B&3\e(B")
+ (its-defrule "Y" "\e$B&4\e(B")
+ (its-defrule "U" "\e$B&(\e(B")
+ (its-defrule "I" "\e$B&)\e(B")
+ (its-defrule "O" "\e$B&/\e(B")
+ (its-defrule "P" "\e$B&1\e(B")
+ (its-defrule "{" "\e$B!P\e(B")
+ (its-defrule "}" "\e$B!Q\e(B")
+ (its-defrule "A" "\e$B&!\e(B")
+ (its-defrule "S" "\e$B&2\e(B")
+ (its-defrule "D" "\e$B&$\e(B")
+ (its-defrule "F" "\e$B&5\e(B")
+ (its-defrule "G" "\e$B&#\e(B")
+ (its-defrule "H" "\e$B&'\e(B")
+ (its-defrule "J" "\e$B&.\e(B")
+ (its-defrule "K" "\e$B&*\e(B")
+ (its-defrule "L" "\e$B&+\e(B")
+ (its-defrule ":" "\e$B!I\e(B")
+ (its-defrule "\"" "\e$B!I\e(B")
+ (its-defrule "|" "\e$B!C\e(B")
+ (its-defrule "Z" "\e$B&&\e(B")
+ (its-defrule "X" "\e$B&6\e(B")
+ (its-defrule "C" "\e$B&7\e(B")
+ (its-defrule "V" "\e$B&8\e(B")
+ (its-defrule "B" "\e$B&"\e(B")
+ (its-defrule "N" "\e$B&-\e(B")
+ (its-defrule "M" "\e$B&,\e(B")
+ (its-defrule "<" "\e$B!(\e(B")
+ (its-defrule ">" "\e$B!'\e(B")
+ (its-defrule "?" "\e$B!)\e(B"))
+
+(define-its-state-machine its-greek-map
+ "greek" "\e,FY\e(B" Greek
+ "\e,FEkkgmij\\e(B: Greek keyboard layout (ISO 8859-7)
+--------------
+
+In the right of \e,Fk\e(B key is a combination key, where
+ \e,F4\e(B acute
+ \e,F(\e(B diaresis
+
+e.g.
+ \e,Fa\e(B + \e,F4\e(B -> \e,F\\e(B
+ \e,Fi\e(B + \e,F(\e(B -> \e,Fz\e(B
+ \e,Fi\e(B + \e,F(\e(B + \e,F4\e(B -> \e,F@\e(B"
+
+;; 1! 2@ 3# 4$ 5% 6^ 7& 8* 9( 0) -_ =+ `~
+;; \e,F7/\e(B \e,FrS\e(B \e,FeE\e(B \e,FqQ\e(B \e,FtT\e(B \e,FuU\e(B \e,FhH\e(B \e,FiI\e(B \e,FoO\e(B \e,FpP\e(B [{ ]}
+;; \e,FaA\e(B \e,FsS\e(B \e,FdD\e(B \e,FvV\e(B \e,FcC\e(B \e,FgG\e(B \e,FnN\e(B \e,FjJ\e(B \e,FkK\e(B \e,F4(\e(B '" \|
+;; \e,FfF\e(B \e,FwW\e(B \e,FxX\e(B \e,FyY\e(B \e,FbB\e(B \e,FmM\e(B \e,FlL\e(B ,; .: /?
+
+ (its-defrule "1" "1")
+ (its-defrule "2" "2")
+ (its-defrule "3" "3")
+ (its-defrule "4" "4")
+ (its-defrule "5" "5")
+ (its-defrule "6" "6")
+ (its-defrule "7" "7")
+ (its-defrule "8" "8")
+ (its-defrule "9" "9")
+ (its-defrule "0" "0")
+ (its-defrule "-" "-")
+ (its-defrule "=" "=")
+ (its-defrule "`" "`")
+ (its-defrule "q" "\e,F7\e(B")
+ (its-defrule "w" "\e,Fr\e(B")
+ (its-defrule "e" "\e,Fe\e(B")
+ (its-defrule "r" "\e,Fq\e(B")
+ (its-defrule "t" "\e,Ft\e(B")
+ (its-defrule "y" "\e,Fu\e(B")
+ (its-defrule "u" "\e,Fh\e(B")
+ (its-defrule "i" "\e,Fi\e(B")
+ (its-defrule "o" "\e,Fo\e(B")
+ (its-defrule "p" "\e,Fp\e(B")
+ (its-defrule "[" "[")
+ (its-defrule "]" "]")
+ (its-defrule "a" "\e,Fa\e(B")
+ (its-defrule "s" "\e,Fs\e(B")
+ (its-defrule "d" "\e,Fd\e(B")
+ (its-defrule "f" "\e,Fv\e(B")
+ (its-defrule "g" "\e,Fc\e(B")
+ (its-defrule "h" "\e,Fg\e(B")
+ (its-defrule "j" "\e,Fn\e(B")
+ (its-defrule "k" "\e,Fj\e(B")
+ (its-defrule "l" "\e,Fk\e(B")
+ (its-defrule ";" "\e,F4\e(B")
+ (its-defrule "'" "'")
+ (its-defrule "\\" "\\")
+ (its-defrule "z" "\e,Ff\e(B")
+ (its-defrule "x" "\e,Fw\e(B")
+ (its-defrule "c" "\e,Fx\e(B")
+ (its-defrule "v" "\e,Fy\e(B")
+ (its-defrule "b" "\e,Fb\e(B")
+ (its-defrule "n" "\e,Fm\e(B")
+ (its-defrule "m" "\e,Fl\e(B")
+ (its-defrule "," ",")
+ (its-defrule "." ".")
+ (its-defrule "/" "/")
+
+ (its-defrule "!" "!")
+ (its-defrule "@" "@")
+ (its-defrule "#" "#")
+ (its-defrule "$" "$")
+ (its-defrule "%" "%")
+ (its-defrule "^" "^")
+ (its-defrule "&" "&")
+ (its-defrule "*" "*")
+ (its-defrule "(" "(")
+ (its-defrule ")" ")")
+ (its-defrule "_" "_")
+ (its-defrule "+" "+")
+ (its-defrule "~" "~")
+ (its-defrule "Q" "\e,F/\e(B")
+ (its-defrule "W" "\e,FS\e(B")
+ (its-defrule "E" "\e,FE\e(B")
+ (its-defrule "R" "\e,FQ\e(B")
+ (its-defrule "T" "\e,FT\e(B")
+ (its-defrule "Y" "\e,FU\e(B")
+ (its-defrule "U" "\e,FH\e(B")
+ (its-defrule "I" "\e,FI\e(B")
+ (its-defrule "O" "\e,FO\e(B")
+ (its-defrule "P" "\e,FP\e(B")
+ (its-defrule "{" "{")
+ (its-defrule "}" "}")
+ (its-defrule "A" "\e,FA\e(B")
+ (its-defrule "S" "\e,FS\e(B")
+ (its-defrule "D" "\e,FD\e(B")
+ (its-defrule "F" "\e,FV\e(B")
+ (its-defrule "G" "\e,FC\e(B")
+ (its-defrule "H" "\e,FG\e(B")
+ (its-defrule "J" "\e,FN\e(B")
+ (its-defrule "K" "\e,FJ\e(B")
+ (its-defrule "L" "\e,FK\e(B")
+ (its-defrule ":" "\e,F(\e(B")
+ (its-defrule "\"" "\"")
+ (its-defrule "|" "|")
+ (its-defrule "Z" "\e,FF\e(B")
+ (its-defrule "X" "\e,FW\e(B")
+ (its-defrule "C" "\e,FX\e(B")
+ (its-defrule "V" "\e,FY\e(B")
+ (its-defrule "B" "\e,FB\e(B")
+ (its-defrule "N" "\e,FM\e(B")
+ (its-defrule "M" "\e,FL\e(B")
+ (its-defrule "<" ";")
+ (its-defrule ">" ":")
+ (its-defrule "?" "?")
+
+ (its-defrule "a;" "\e,F\\e(B")
+ (its-defrule "e;" "\e,F]\e(B")
+ (its-defrule "h;" "\e,F^\e(B")
+ (its-defrule "i;" "\e,F_\e(B")
+ (its-defrule "o;" "\e,F|\e(B")
+ (its-defrule "y;" "\e,F}\e(B")
+ (its-defrule "v;" "\e,F~\e(B")
+ (its-defrule "A;" "\e,F6\e(B")
+ (its-defrule "E;" "\e,F8\e(B")
+ (its-defrule "H;" "\e,F9\e(B")
+ (its-defrule "I;" "\e,F:\e(B")
+ (its-defrule "O;" "\e,F<\e(B")
+ (its-defrule "Y;" "\e,F>\e(B")
+ (its-defrule "V;" "\e,F?\e(B")
+ (its-defrule "i:" "\e,Fz\e(B")
+ (its-defrule "y:" "\e,F{\e(B")
+ (its-defrule "I:" "\e,FZ\e(B")
+ (its-defrule "Y:" "\e,F[\e(B")
+ (its-defrule "i:;" "\e,F@\e(B")
+ (its-defrule "y:;" "\e,F`\e(B"))
+
+(provide 'its/greek)