Help:GeSHi: Difference between revisions
m (→The initial sample program: Fixed old highlighting tags) |
(IMHO Looks better, because supported sources tags are already listed. And "Insert Source Code Here" is ugly. Feel free to undo.) |
||
Line 299: | Line 299: | ||
end |
end |
||
</lang> |
</lang> |
||
== Geshi supported formats == |
|||
===[[Actionscript]]=== |
|||
Web page:[http://www.actionscript.org/ Actionscript] |
|||
Sample: |
|||
<actionscript> |
|||
Insert code here: ? |
|||
</actionscript> |
|||
<actionscript-french> |
|||
Insert code here: ? |
|||
</actionscript-french> |
|||
===[[ADA]]=== |
|||
Sample: |
|||
<ada> |
|||
Insert code here: ? |
|||
</ada> |
|||
===[[AppleScript]]=== |
|||
Web page:[http://www.apple.com/macosx/features/applescript/ AppleScript] |
|||
Sample: |
|||
<applescript> |
|||
Insert code here: ? |
|||
</applescript> |
|||
===[[ASM]]=== |
|||
Sample: |
|||
<asm> |
|||
Insert code here: ? |
|||
</asm> |
|||
===[[ASP]]=== |
|||
Web page:[http://www.asp.net/ ASP] |
|||
Sample: |
|||
<asp> |
|||
Insert code here: ? |
|||
</asp> |
|||
===[[Backus-Naur form]]=== |
|||
Web page:[http://en.wikipedia.org/wiki/Backus-Naur_form Backus-Naur form] |
|||
Sample: |
|||
<Backus-Naur> |
|||
Check tag and insert here: ? |
|||
</Backus-Naur> |
|||
===[[Bash]]=== |
|||
Web page:[http://www.gnu.org/software/bash/bash.html Bash] |
|||
Sample: |
|||
<bash> |
|||
Insert code here: ? |
|||
</bash> |
|||
===[[BlitzBasic]]=== |
|||
Web page:[http://blitzbasic.com/ BlitzBasic] |
|||
Sample: |
|||
<blitzbasic> |
|||
Insert code here: ? |
|||
</blitzbasic> |
|||
===[[CAD DCL]]=== |
|||
Web page:[http://www.intellicad.org/ CAD DCL] |
|||
Sample: |
|||
===[[CadLisp]]=== |
|||
Web page:[http://www.intellicad.org/ CadLisp] |
|||
Sample: |
|||
<cadlisp> |
|||
Insert code here: ? |
|||
</cadlisp> |
|||
===[[CFDG]]=== |
|||
Web page:[http://www.contextfreeart.org/wiki/ CFDG] |
|||
Sample: |
|||
<CFDG> |
|||
Check tag and insert here: ? |
|||
</CFDG> |
|||
===[[C for Macs]]=== |
|||
Sample: |
|||
<c_mac> |
|||
Insert code here: ? |
|||
</c_mac> |
|||
===[[ColdFusion]]=== |
|||
Web page:[http://www.macromedia.com/software/coldfusion/ ColdFusion] |
|||
Sample: |
|||
===[[C#]]=== |
|||
Sample: |
|||
<csharp> |
|||
Insert code here: ? |
|||
</csharp> |
|||
===[[CSS]]=== |
|||
Web page:[http://www.w3.org/Style/ CSS] |
|||
Sample: |
|||
<css> |
|||
Insert code here: ? |
|||
</css> |
|||
===[[C++]]=== |
|||
Web page:[http://www.cplusplus.com/ C++] |
|||
Sample: |
|||
<cpp> |
|||
Insert code here: ? |
|||
</cpp> |
|||
===[[C]]=== |
|||
Web page:[http://www.cprogramming.org/ C] |
|||
Sample: |
|||
<c> |
|||
Insert code here: ? |
|||
</c> |
|||
===[[Delphi]]=== |
|||
Web page:[http://www.borland.com/ Delphi] |
|||
Sample: |
|||
<delphi> |
|||
Insert code here: ? |
|||
</delphi> |
|||
===[[DIV]]=== |
|||
Web page:[http://div-arena.com/ DIV] |
|||
Sample: |
|||
<diff> |
|||
Insert code here: ? |
|||
</diff> |
|||
===[[DOS]]=== |
|||
Sample: |
|||
<dos> |
|||
Insert code here: ? |
|||
</dos> |
|||
===[[D]]=== |
|||
Sample: |
|||
<d> |
|||
Insert code here: ? |
|||
</d> |
|||
===[[Eiffel]]=== |
|||
Web page:[http://eiffel.com/ Eiffel] |
|||
Sample: |
|||
<eiffel> |
|||
Insert code here: ? |
|||
</eiffel> |
|||
===[[Fortran]]=== |
|||
Web page:[http://en.wikipedia.org/wiki/Fortran Fortran] |
|||
Sample: |
|||
<Fortran> |
|||
Insert code here: ? |
|||
PROGRAM MAIN |
|||
INTEGER I |
|||
CALL SUBROUTINE |
|||
STOP |
|||
EXIT |
|||
</Fortran> |
|||
===[[FreeBASIC]]=== |
|||
Web page:[http://www.freebasic.net/ FreeBasic] |
|||
Sample: |
|||
<freebasic> |
|||
Insert code here: ? |
|||
</freebasic> |
|||
===[[GML]]=== |
|||
Web page:[http://www.gamemaker.nl/ GML] |
|||
Sample: |
|||
<gml> |
|||
Insert code here: ? |
|||
</gml> |
|||
===[[Groovy]]=== |
|||
Web page:[http://groovy.codehaus.org/ Groovy] |
|||
Sample: |
|||
<Groovy> |
|||
Check tag and insert here: ? |
|||
</Groovy> |
|||
===[[HTML]]=== |
|||
Web page:[http://www.w3.org/TR/REC-html40/ HTML] |
|||
Sample: |
|||
<html4strict> |
|||
Insert code here: ? |
|||
</html4strict> |
|||
===[[Inno]]=== |
|||
Web page:[http://www.jrsoftware.org/isinfo.php Inno] |
|||
Sample: |
|||
<inno> |
|||
Insert code here: ? |
|||
</inno> |
|||
===[[IO]]=== |
|||
Web page:[http://www.iolanguage.com/about/ IO] |
|||
Sample: |
|||
<IO> |
|||
Insert code here: ? |
|||
</IO> |
|||
===[[Java 5]]=== |
|||
Web page:[http://java.sun.com/ Java 5] |
|||
Sample: |
|||
<java> |
|||
Insert code here: ? |
|||
</java> |
|||
===[[Javascript]]=== |
|||
Web page:[http://www.javascript.com/ Javascript] |
|||
Sample: |
|||
<javascript> |
|||
Insert code here: ? |
|||
</javascript> |
|||
===[[Java]]=== |
|||
Web page:[http://java.sun.com/ Java] |
|||
Sample: |
|||
<java> |
|||
Insert code here: ? |
|||
</java> |
|||
===[[LaTeX]]=== |
|||
Web page:[http://www.latex-project.org/ LaTeX] |
|||
Sample: |
|||
<LaTeX> |
|||
Insert code here: ? |
|||
</LaTex> |
|||
===[[Lisp]]=== |
|||
Web page:[http://www.lisp.org/ Lisp] |
|||
Sample: |
|||
<lisp> |
|||
Insert code here: ? |
|||
</lisp> |
|||
===[[Lua]]=== |
|||
Web page:[http://www.lua.org/ Lua] |
|||
Sample: |
|||
<lua> |
|||
Insert code here: ? |
|||
</lua> |
|||
===[[MatLab]]=== |
|||
Sample: |
|||
<matlab> |
|||
Insert code here: ? |
|||
</matlab> |
|||
===[[Microprocessor ASM]]=== |
|||
===[[mpasm]]=== |
|||
Sample: |
|||
<mpasm> |
|||
Insert code here: ? |
|||
</mpasm> |
|||
===[[MySQL]]=== |
|||
Web page:[http://mysql.com/ MySQL] |
|||
Sample: |
|||
<mysql> |
|||
Insert code here: ? |
|||
</mysql> |
|||
===[[NSIS]]=== |
|||
Web page:[http://nsis.sourceforge.net/ NSIS] |
|||
Sample: |
|||
<nsis> |
|||
Insert code here: ? |
|||
</nsis> |
|||
===[[Objective C]]=== |
|||
Sample: |
|||
<objc> |
|||
Insert code here: ? |
|||
</objc> |
|||
===[[OCaml]]=== |
|||
Web page:[http://caml.inria.fr/ OCaml] |
|||
Sample: |
|||
<ocaml-brief> |
|||
Insert code here: ? |
|||
</ocaml-brief> |
|||
<ocaml> |
|||
Insert code here: ? |
|||
</ocaml> |
|||
===[[OpenOffice BASIC]]=== |
|||
Web page:[http://www.openoffice.org/ OpenOffice BASIC] |
|||
Sample: |
|||
<oobas> |
|||
Insert code here: ? |
|||
</oobas> |
|||
===[[Oracle 8 SQL]]=== |
|||
Web page:[http://www.oracle.com/ Oracle 8 SQL] |
|||
Sample: |
|||
<oracle8> |
|||
Insert code here: ? |
|||
</oracle8> |
|||
===[[Pascal]]=== |
|||
Sample: |
|||
<pascal> |
|||
Insert code here: ? |
|||
</pascal> |
|||
===[[Perl]]=== |
|||
Web page:[http://www.perl.com/ Perl] |
|||
Sample: |
|||
<perl> |
|||
Insert code here: ? |
|||
</perl> |
|||
===[[PHP]]=== |
|||
Web page:[http://www.php.net/ PHP] |
|||
Sample: |
|||
<php> |
|||
Insert code here: ? |
|||
</php> |
|||
<php-brief> |
|||
Insert code here: ? |
|||
</php-brief> |
|||
===[[PL/SQL]]=== |
|||
Web page:[http://en.wikipedia.org/wiki/PL/SQL PL/SQL] |
|||
Sample: |
|||
<PLSQL> |
|||
Check tag and insert here: ? |
|||
</PLSQL> |
|||
===[[Python]]=== |
|||
Web page:[http://www.python.org/ Python] |
|||
Sample: |
|||
<python> |
|||
Insert code here: ? |
|||
</python> |
|||
===[[QBASIC]]=== |
|||
Web page:[http://qbnz.com/ Q(uick)BASIC] |
|||
Sample: |
|||
<qbasic> |
|||
Insert code here: ? |
|||
</qbasic> |
|||
===[[Ruby]]=== |
|||
Web page:[http://ruby-lang.org/ Ruby] |
|||
Sample: |
|||
<ruby> |
|||
Insert code here: ? |
|||
</ruby> |
|||
===[[SAS]]=== |
|||
<SAS> |
|||
Check tag and insert here: ? |
|||
</SAS> |
|||
Web page:[http://en.wikipedia.org/wiki/SAS_programming_language SAS] |
|||
===[[Scheme]]=== |
|||
Web page:[http://schemers.org/ Scheme] |
|||
Sample: |
|||
<scheme> |
|||
Insert code here: ? |
|||
</scheme> |
|||
===[[SDLBasic]]=== |
|||
Web page:[http://sdlbasic.sf.net/ SDLBasic] |
|||
Sample: |
|||
<sdlbasic> |
|||
Insert code here: ? |
|||
</sdlbasic> |
|||
===[[Smalltalk]]=== |
|||
Web page:[http://en.wikipedia.org/wiki/Smalltalk_programming_language Smalltalk] |
|||
Sample: |
|||
<Smalltalk> |
|||
Check tag and insert here: ? |
|||
</Smalltalk> |
|||
===[[Smarty]]=== |
|||
Web page:[http://smarty.php.net/ Smarty] |
|||
Sample: |
|||
<smarty> |
|||
Insert code here: ? |
|||
</smarty> |
|||
===[[SQL]]=== |
|||
Sample: |
|||
<sql> |
|||
Insert code here: ? |
|||
</sql> |
|||
===[[TCL]]=== |
|||
Web page:[http://www.tcl.tk/ TCL] |
|||
Sample: |
|||
<TCL> |
|||
Check tag and insert here: ? |
|||
</TCL> |
|||
===[[thinBasic]]=== |
|||
Web page:[http://www.thinbasic.com/ thinBasic] |
|||
Sample: |
|||
<ThinBasic> |
|||
Check tag and insert here: ? |
|||
</ThinBasic> |
|||
===[[T-SQL]]=== |
|||
<T-SQL> |
|||
Check tag and insert here: ? |
|||
</T-SQL> |
|||
===[[Uno IDL]]=== |
|||
Web page:[http://wiki.services.openoffice.org/wiki/Uno/Article/Understanding_Uno Uno IDL] |
|||
Sample: |
|||
<Uno IDL> |
|||
Check tag and insert here: ? |
|||
</Uno IDL> |
|||
===[[VB.NET]]=== |
|||
Web page:[http://msdn.microsoft.com/ VB.NET] |
|||
Sample: |
|||
<vb> |
|||
Insert code here: ? |
|||
</vb> |
|||
===[[Visual BASIC]]=== |
|||
Web page:[http://msdn.microsoft.com/vbasic/ Visual BASIC] |
|||
Sample: |
|||
<vbnet> |
|||
Insert code here: ? |
|||
</vbnet> |
|||
===[[Visual Fox Pro]]=== |
|||
Web page:[http://msdn.microsoft.com/vfoxpro/ Visual Fox Pro] |
|||
Sample: |
|||
<visualfoxpro> |
|||
Insert code here: ? |
|||
</visualfoxpro> |
|||
===[[Visual VHDL]]=== |
|||
Sample: |
|||
<vhdl> |
|||
Insert code here: ? |
|||
</vhdl> |
|||
===[[Winbatch]]=== |
|||
Web page:[http://winbatch.com/ Winbatch] |
|||
Sample: |
|||
<Winbatch> |
|||
Check tag and insert here: ? |
|||
</Winbatch> |
|||
===[[X++]]=== |
|||
Web page:[http://msdn2.microsoft.com/en-us/library/aa867122.aspx X++] |
|||
Sample: |
|||
<Xpl> |
|||
Insert code here: ? |
|||
</Xpl> |
|||
===[[Z80 ASM]]=== |
|||
Web page:[http://en.wikipedia.org/wiki/Zilog_Z80#The_Z80_assembly_language Z80 ASM] |
|||
Sample: |
|||
== Other GeSHi file formats == |
|||
===[[Apache Log]]=== |
|||
Web page:[http://www.apache.org/ Apache Log] |
|||
Sample: |
|||
<apache> |
|||
Insert code here: ? |
|||
</apache> |
|||
===[[Ini]]=== |
|||
Sample: |
|||
<ini> |
|||
Insert code here: ? |
|||
</ini> |
|||
===[[mIRC]]=== |
|||
Web page:[http://mirc.com/ mIRC] |
|||
Sample: |
|||
<mIRC> |
|||
Check tag and insert here: ? |
|||
</mIRC> |
|||
===[[robots.txt]]=== |
|||
Web page:[http://www.robotstxt.org/wc/norobots.html robots.txt] |
|||
Sample: |
|||
<robots.txt> |
|||
Check tag and insert here: ? |
|||
</robots.txt> |
|||
===[[XML]]=== |
|||
Web page:[http://www.xml.com/ XML] |
|||
Sample: |
|||
<xml> |
|||
Insert code here: ? |
|||
</xml> |
Revision as of 17:47, 13 February 2009
The following are examples of typical code formated with GeSHi, the Generic Syntax Hilighter.
Supported source tags
This list is generated by the MediaWiki extension based on per-language syntax files available. Anything not in this list does not yet have syntax highlighting support on Rosetta Code. Feel free to provide a GeSHi script file. It will be reviewed and (probably) added. <lang list></lang>
Usage
Non-updated examples on this page notwithstanding, all code should be formatted as follows:
<lang ada> function Is_Prime(Item : Positive) return Boolean is Result : Boolean := True; Test : Natural; begin if Item /= 2 and Item mod 2 = 0 then Result := False; else Test := 3; while Test < Integer(Sqrt(Float(Item))) loop if Item mod Test = 0 then Result := False; exit; end if; Test := Test + 2; end loop; end if; return Result; end Is_Prime; </lang>
Replace "ada" with the language tag appropriate to the language of the code in question. It will be formatted using available syntax rules for the language.
The initial sample program
Use trial division. Even numbers may be eliminated right away. A loop from 3 to √(n) will suffice, but other loops are allowed.
Ada
<lang ada>
function Is_Prime(Item : Positive) return Boolean is Result : Boolean := True; Test : Natural; begin if Item /= 2 and Item mod 2 = 0 then Result := False; else Test := 3; while Test < Integer(Sqrt(Float(Item))) loop if Item mod Test = 0 then Result := False; exit; end if; Test := Test + 2; end loop; end if; return Result; end Is_Prime;
</lang>
ALGOL 68 (unsupported)
<lang algol68>
main:( PROC is prime = ( INT n )BOOL: ( IF n = 2 THEN TRUE ELIF n <= 1 OR n MOD 2 = 0 THEN FALSE ELSE BOOL prime := TRUE; FOR i FROM 3 BY 2 TO ENTIER sqrt(n) WHILE prime := n MOD i /= 0 DO SKIP OD; prime FI ); INT upb=100; printf(($" The primes up to "g(-3)" are:"l$,upb)); FOR i TO upb DO IF is prime(i) THEN printf(($g(-4)$,i)) FI OD; printf($l$) )
Output: </lang>
The primes up to 100 are: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97
QuickBasic
Going with the classic 1 for "true" and 0 for "false": <lang qbasic>
FUNCTION prime% (n!) IF n = 2 THEN prime = 1 IF n <= 1 OR n MOD 2 = 0 THEN prime = 0 FOR a = 3 TO INT(SQR(n)) STEP 2 IF n MOD a = 0 THEN prime = 0 NEXT a prime = 1 END FUNCTION
</lang>
C
<lang c>
#include <math.h> #define FALSE 0 #define TRUE 1 int isPrime( unsigned int n ) { unsigned int i; if ( n === 2 ) return TRUE; if ( n <= 1 || ( n & 1 ) === 0 ) return FALSE; for ( i = 3 ; i <= sqrt( n ) ; i += 2 ) if ( n % i === 0 ) return FALSE; return TRUE; }
</lang>
Lisp
Note: Common Lisp words like "loop" are not highlighted. <lang lisp>(defun primep (a)
(cond ((= a 2) T) ((or (<= a 1) (= (mod a 2) 0)) nil) ((loop for i from 3 to (sqrt a) by 2 do (if (= (mod a i) 0) (return nil))) nil) (T T)))</lang>
D
<lang d>
import std.math: sqrt; bool isPrime(int n) { if (n === 2) return true; if (n <= 1 || (n & 1) === 0) return false; for(int i = 3; i <= sqrt(cast(float)n); i += 2) if (n % i === 0) return false; return true; }
</lang>
Forth (unsupported)
<lang forth>
: prime? ( n -- ? ) dup 2 < if drop false else dup 2 = if drop true else dup 1 and 0= if drop false else 3 begin 2dup dup * >= while 2dup mod 0= if 2drop false exit then 2 + repeat 2drop true then then then ;
</lang>
Haskell (unsupported)
Without square roots: <lang haskell>
divides k n = n `mod` k === 0 isPrime :: Integer -> Bool isPrime n | n < 2 = False isPrime n = not $ any (`divides` n) $ takeWhile (\k -> k*k <= n) [2..]
</lang>
J (unsupported)
Actually 1&p: would do, but the task calls for trial division, so: <lang J>
isprime=: 3 : 'if. 3>:y do. 1<y else. 0 *./@:< y|~2+i.<.%:y end.'
</lang>
Java
<lang java>
public static boolean prime(double a){ if(a === 2){ return true; }else if(a <= 1 || a % 2 === 0){ return false; } for(long n= 3; n <= (long)Math.sqrt(a); n+= 2){ if(a % n === 0){ return false; } } return true; }
</lang>
MAXScript (unsupported)
<lang maxscript>
fn isPrime n = ( if n === 2 then ( return true ) else if (n <= 1) OR (mod n 2 === 0) then ( return false ) for i in 3 to (sqrt n) by 2 do ( if mod n i === 0 then return false ) true )
</lang>
Perl
<lang perl>
sub prime { $a = shift; if ($a === 2) { return 1; } if ($a <= 1 || $a % 2 === 0) { return 0; } $d = 3; while ($d <= sqrt($a)) { if ($a % $d === 0) { return 0; } $d += 2; } return 1; }
</lang>
Python
Ugh. Who chose these colors? --IanOsgood 09:20, 25 February 2008 (MST)
The simplest primality test, using trial division:
<lang python> def prime(a):
return not (a < 2 or any(a % x === 0 for x in range(2, int(a**0.5) + 1)))
</lang>
Another test. Exclude even numbers first:
<lang python> def prime2(a):
if a === 2: return True if a < 2 or a % 2 === 0: return False return not any(a % x === 0 for x in range(3, int(a**0.5) + 1, 2))
</lang>
Yet another test. Exclude multiples of 2 and 3, see http://www.devx.com/vb2themax/Tip/19051:
<lang python> def prime3(a):
if a < 2: return False if a === 2 or a === 3: return True # manually test 2 and 3 if a % 2 === 0 or a % 3 === 0: return False # exclude multiples of 2 and 3
maxDivisor = a**0.5 d, i = 5, 2 while d <= maxDivisor: if a % d === 0: return False d += i i = 6 - i # this modifies 2 into 4 and viceversa
return True
</lang>
Ruby
<lang ruby>
def prime(a) if a===2 return true end if a<=1 || a%2===0 return false end d=3 while d <= Math.sqrt(a) do if a%d===0 return false end d+=2 end return true end
</lang>