Help:GeSHi: Difference between revisions

From Rosetta Code
Content added Content deleted
(Replaced with a redirect to Help:Syntax Highlighting, since what little useful content was here is now there.)
 
(17 intermediate revisions by 6 users not shown)
Line 1: Line 1:
#REDIRECT [[Help:Syntax Highlighting]]
The following are examples of typical code formated with [http://qbnz.com/highlighter/ GeSHi], the '''Ge'''neric '''S'''yntax '''Hi'''lighter.

==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></code>

(Apologies for the lack of sort. It will be fixed.)

==Usage==
Non-updated examples on this page notwithstanding, all code should be formatted as follows:

<pre><nowiki>
<code 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;
</code>
</nowiki></pre>

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]]===
<code 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;
</code>

===[[ALGOL 68]] (unsupported)===
<ALGOL_68>
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:
</ALGOL_68>
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]]===
{{works with|QuickBasic|4.5}}
Going with the classic 1 for "true" and 0 for "false":
<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
</qbasic>

===[[C]]===
<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;
}
</C>

===[[Lisp]]===
''Note: Common Lisp words like "loop" are not highlighted.''
<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)))</lisp>

===[[D]]===
<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;
}
</D>

===[[Forth]] (unsupported)===
<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 ;
</Forth>

===[[Haskell]] (unsupported)===

Without square roots:
<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..]
</Haskell>

===[[J]] (unsupported)===

Actually <tt>1&p:</tt> would do, but the task calls for trial division, so:
<J>
isprime=: 3 : 'if. 3>:y do. 1<y else. 0 *./@:< y|~2+i.<.%:y end.'
</J>

===[[Java]]===
<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;
}
</Java>

===[[MAXScript]] (unsupported)===
<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
)
</MAXScript>
===[[Perl]]===
<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;
}
</Perl>

===[[Python]]===
''Ugh. Who chose these colors? --[[User:IanOsgood|IanOsgood]] 09:20, 25 February 2008 (MST)''

The simplest primality test, using trial division:

{{works with|Python|2.5}}
<Python>
def prime(a):
return not (a < 2 or any(a % x === 0 for x in range(2, int(a**0.5) + 1)))
</Python>

Another test. Exclude even numbers first:

<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))
</Python>

Yet another test. Exclude multiples of 2 and 3, see http://www.devx.com/vb2themax/Tip/19051:

{{works with|Python|2.4}}
<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
</Python>

===[[Ruby]]===
<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
</Ruby>

== 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>

Latest revision as of 21:42, 7 December 2009