Commits

Anonymous committed ce038fb

seems working, adding atom support

Comments (0)

Files changed (1)

 type erlterm =
     Int of int
   | Float of float
-      (*  | Atom of string *) 
+  | Atom of string
   | Tuple of erlterm list (* type of tuple is different btw Erlang and OCaml *)
   | List of erlterm list 
   | String of string
 	  let v = Scanf.sscanf (String.sub local_bin 1 32) "%f" (fun x->x) in
 	    Ok( Float( v ), Str.string_after local_bin 32); 
       | 'd' -> (* ATOM_EXT *)
-	  raise Not_supported;
+	  let len = (int_of_char (String.get local_bin 1))*256 + (int_of_char (String.get local_bin 2)) in
+	    Ok( Atom( String.sub local_bin 3 len ), Str.string_after local_bin (len+3) );
       | 'e' -> (* REFERENCE_EXT *)
 	  raise Not_supported;
       | 'f' -> (* PORT_EXT *)
       | 'p' -> (* NEW_REFERENCE_EXT *)
 	  raise Not_supported;
       | 'q' -> (* SMALL_ATOM_EXT *)
-	  raise Not_supported;	    
+	  let len = int_of_char (String.get local_bin 1) in   
+	    Ok( Atom( String.sub local_bin 3 len ), Str.string_after local_bin (len+3) );
       | 'r' -> (* FUN_EXT *)
 	  raise Not_supported;	    
       | 's' -> (* NEW_FUN_EXT *)
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.