/**
   Io language specification.
   
   v0.1 by Massimiliano Gubinelli, mgubi@mac.com

   based on Python.pblangspec by Bill Bumgarner, bbum@codefab.com

   to be installed in /Library/Application Support/Apple/Developer Tools/Specifications/
   toghether with the file Io.pbfilespec

*/
(
 // Io script
{
  Identifier = shell.io;
  Name = "Io Script";
  Description = "Io Script";
        BasedOn = "pbx_root_language";
        SupportsIndentation = YES;
        Indentation = {
        };
  SyntaxColoring = {
            CaseSensitive = YES;
    IdentifierStartChars = "_";
    CommentsCanBeNested = NO;
    SingleLineComment = ( "//" );
    /* unfortunately, PB doesn't deal gracefully w/the triple quote delimiters.  
		 Not much we can do but hope it is fixed in the future.
     */
            MultiLineComment = (
                ( "/*", "*/" )
            );
            String = (
                ( "\"", "\"" )
            );
    EscapeCharacter = "\\";
    Keywords = (
				  "activate" ,
				  "activeCoroCount" ,
				  "and" ,
				  "asString" ,
				  "block" ,
				  "break" ,
				  "catch" ,
				  "clone" ,
				  "collectGarbage" ,
				  "compileString" ,
				  "continue" ,
				  "do" ,
				  "doFile" ,
				  "doMessage" ,
				  "doString" ,
				  "else" ,
				  "elseif" ,
				  "exit" ,
				  "for" ,
				  "foreach" ,
				  "forward" ,
				  "getSlot" ,
				  "getEnvironmentVariable" ,
				  "hasSlot" ,
				  "if" ,
				  "ifFalse" ,
				  "ifNil" ,
				  "ifTrue" ,
				  "isActive" ,
				  "isNil" ,
				  "isResumable" ,
				  "list" ,
				  "message" ,
				  "method" ,
				  "newSlot",
				  "or" ,
				  "parent" ,
				  "pass" ,
				  "pause" ,
				  "perform" ,
				  "performWithArgList" ,
				  "print" ,
				  "proto" ,
				  "raise" ,
				  "raiseResumable" ,
				  "removeSlot" ,
				  "resend" ,
				  "resume" ,
				  "return" ,
				  "schedulerSleepSeconds" ,
				  "self" ,
				  "sender" ,
				  "setSchedulerSleepSeconds" ,
				  "setSlot" ,
				  "shallowCopy" ,
				  "slotNames" ,
				  "super" ,
				  "system" ,
				  "then" ,
				  "thisBlock" ,
				  "thisContext" ,
				  "thisMessage" ,
				  "try" ,
				  "type" ,
				  "uniqueId" ,
				  "updateSlot" ,
				  "wait" ,
				  "while" ,
				  "write" ,
				  "yield" 
		);
 		AltKeywords = (
				"IoDesktop",
				"IoServer",
				"IoVM",
				    "Array" ,
				    "AudioDevice" ,
				    "AudioMixer" ,
				    "Block" ,
				    "Box" ,
				    "Buffer" ,
				    "CFunction" ,
				    "CGI" ,
				    "Color" ,
				    "Curses" ,
				    "DBM" ,
				    "DNSResolver" ,
				    "DOConnection" ,
				    "DOProxy" ,
				    "DOServer" ,
				    "Date" ,
				    "Directory" ,
				    "Duration" ,
				    "DynLib" ,
				    "Error" ,
				    "Exception" ,
				    "FFT" ,
				    "File" ,
				    "Fnmatch" ,
				    "Font" ,
				    "Future" ,
				    "GL" ,
				    "GLE" ,
				    "GLScissor" ,
				    "GLU" ,
				    "GLUCylinder" ,
				    "GLUQuadric" ,
				    "GLUSphere" ,
				    "GLUT" ,
				    "Host" ,
				    "Image" ,
				    "Importer" ,
				    "LinkList" ,
				    "List" ,
				    "Lobby" ,
				    "Locals" ,
				    "MD5" ,
				    "MP3Decoder" ,
				    "MP3Encoder" ,
				    "Map" ,
				    "Message" ,
				    "Movie" ,
				    "nil" ,
				    "true" ,
				    "false" ,
				    "Notification" ,
				    "Number" ,
				    "Object" ,
				    "OpenGL" ,
				    "Point" ,
				    "Protos" ,
				    "Regex" ,
				    "SGMLTag" ,
				    "SQLite" ,
				    "Server" ,
				    "ShowMessage" ,
				    "SleepyCat" ,
				    "SleepyCatCursor" ,
				    "Socket" ,
				    "SocketManager" ,
				    "Sound" ,
				    "Soup" ,
				    "Store" ,
				    "String" ,
				    "Tree" ,
				    "UDPSender" ,
				    "UPDReceiver" ,
				    "URL" ,
				    "User" ,
				    "Warning" ,
				    "WeakLink" 
		);
 };
}
)


