% -*- slang -*- % This file provides a mode for editing Postgres files. % % Written by Abraham vd Merwe % Basic syntax highligting, nothing else. % Last updated: 24 June 2002 variable postgres = "postgres"; !if (keymap_p (postgres)) make_keymap (postgres); % Now create and initialize a syntax table. create_syntax_table (postgres); define_syntax ("/*","*/",'%',postgres); % comments define_syntax ("--","",'%',postgres); define_syntax ("([", ")]", '(',postgres); % parentheses (is {[,}] ook valid? define_syntax ('"','"',postgres); % strings define_syntax ('\\','\\',postgres); % escape character define_syntax ("0-9a-zA-Z_",'w',postgres); % identifiers define_syntax ("0-9a-fA-F.xXL",'0',postgres); % numbers define_syntax (",;",',',postgres); % delimiters define_syntax ("+-*/%=.&|^~<>!?@:#",'+',postgres); % operators set_syntax_flags (postgres,0x01|0x04); % keywords () = define_keywords_n (postgres,"asbydoinisnoofonorto",2,0); () = define_keywords_n (postgres,"addallandanyascbitdaydecendforintkeynewnotrowset",3,0); () = define_keywords_n (postgres,"boolbothcasecastcidrcopydatedescdropeachelsefromfullhour" + "inetint2int4int8intojoinleftlikelineloadlockmodemovenext" + "nonenulloidsonlyreadrealruleshowsometempthentimetruetype" + "userviewwhenwithworkyearzone",4,0); () = define_keywords_n (postgres,"abortafteralterbegincachecheckclosecrosscyclefalsefetch" + "forcegrantgroupindexinnerlevellocalmatchmoneymonthnames" + "ncharorderouterpriorresetrightsetofsharestartstdintable" + "unionuntilusingvalidwhere",5,0); () = define_keywords_n (postgres,"accessactionbeforebinarycolumncommitcreatecursordelete" + "doubleexceptexistsextendfloat8globalhavinginsertisnulllisten" + "minutenotifyoffsetoptionpublicreciperenamerevokescrollsecond" + "selectserialstdouttimetzuniqueupdatevacuumvalues",6,0); () = define_keywords_n (postgres,"analyzebetweenbooleancascadeclustercollatecommentcurrentdecimal" + "declaredefaultexecuteexplainextractforeignforwardhandlerinstead" + "leadingnaturalnothingnotnullnumericpartialpendantprimary" + "reindexreturnstriggertrustedvaryingverbose" + "version",7,0); () = define_keywords_n (postgres,"absolutebackwardcreatedbdatabasedatetimedeferreddistinct" + "encodingfunctioninheritslanguagelocationmaxvalueminvalue" + "nationaloperatoroverlapspasswordrelativerestrictrollback" + "sequencesmallinttimespantrailingunlisten",8,0); () = define_keywords_n (postgres,"aggregatecharactercommittedexclusiveimmediateincrement" + "initiallyintersectisolationprecisionprocedurestatement",9,0); () = define_keywords_n (postgres,"constraintcreateuserdeferrabledelimitersnocreatedbprivilegesproceduralreferences",10,0); () = define_keywords_n (postgres,"constraintsinsensitivelancompilertransaction",11,0); () = define_keywords_n (postgres,"current_datecurrent_timecurrent_usernocreateuserserializablesession_user",12,0); () = define_keywords_n (postgres,"timezone_hour",13,0); () = define_keywords_n (postgres,"timezone_minute",15,0); () = define_keywords_n (postgres,"current_timestamp",17,0); % functions () = define_keywords_n (postgres,"lnpi",2,1); () = define_keywords_n (postgres,"absageboxcoscotexplogpowsintan",3,1); () = define_keywords_n (postgres,"acosareaasinatancbrtcharhostlpadlsegpathrpadsqrttexttrim",4,1); () = define_keywords_n (postgres,"atan2floatlowerltrimpointpopenroundrtrimtruncupperwidth",5,1); () = define_keywords_n (postgres,"centercirclefloat4heightisopenlengthnpointnullifpcloseradiussubstr",6,1); () = define_keywords_n (postgres,"abstimedegreesinitcapintegermasklennetmaskpolygonradiansreltimetextposto_charto_datevarchar",7,1); () = define_keywords_n (postgres,"coalescediameterintervalisclosedisfiniteposition",8,1); () = define_keywords_n (postgres,"broadcastdate_partisoldpathsubstringtimestampto_numbertranslate",9,1); () = define_keywords_n (postgres,"date_truncrevertpoly",10,1); () = define_keywords_n (postgres,"char_lengthupgradepathupgradepoly",11,1); () = define_keywords_n (postgres,"octet_lengthto_timestamp",12,1); () = define_keywords_n (postgres,"character_length",16,1); define postgres_mode () { variable kmap = postgres; set_mode (kmap,4); use_keymap (kmap); use_syntax_table (kmap); }