Overview

(**********************************************)
(*               OCamlRuby                    *)
(**********************************************)


BUILD
=====

	$ ./build.sh


USAGE
=====

	$ ./ocamlruby <filename>.rb


EXAMPLE
=======

	$ ./ocamlruby samples/test.rb

	$ ./ocamlruby samples/fib.rb



SYNTAX
======
	<program> ::= <expr>
	
	<expr> ::= <lterm>*
	<lterm> ::= <rterm> ( [ "&&" | "||" ] <rterm> )*

	<rterm> ::= <aterm> ( [ "==" | "!=" | "<=" | "<" | ">=" | ">" ] <aterm> )*

	<aterm> ::= <mterm> ( [ "+" | "-" ] <mterm> )*

	<mterm> ::= <factor> ( ["*" | "/" ] <factor> )*

	<factor> ::= <factor1> <factor_next>

	<factor1> ::= <ident> "=" <lterm>
		    | "@" <ident> "=" <lterm>
		    | <ident> "(" <expr> "," .. "," <expr> ")"
	    	    | <ident> <block>
		    | <ident>
		    | "@" <ident>
		    | "def" <ident> "(" <ident> "," .. "," <ident> ")" <expr> "end"
		    | "def" <ident>  <expr> "end"
		    | "class" <ident>  <expr>  "end"
	    	    | "class"  <expr>  "end"
		    | <block>
		    | "(" <expr> ")"
		    | "if" <expr> "then" <expr> "else" <expr> "end"
		    | <literal>
		 
	<factor_next> ::= "." <ident> "(" <expr> "," .. "," <expr> ")"  <factor_next>
		        | "." <ident>  <block> <factor_next>	
			| "." <ident>  <factor_next>
		        | <e>

	<block> ::= "{"  "|" <ident> "," .. "," <ident> "|" <expr> "}"
		  | "do" "|" <ident> "," .. "," <ident> "|" <expr> "end"

	<literal> ::= <string> | <int> | <bool>



AUTHOR
======

	Yoshihiro Imai
	yimai.v @ gmail.com