diff --git a/docs/06_Highlight_Samples/highlight-js.md b/docs/06_Highlight_Samples/highlight-js.md new file mode 100644 index 0000000..4ab82b9 --- /dev/null +++ b/docs/06_Highlight_Samples/highlight-js.md @@ -0,0 +1,2162 @@ +Highlight.js highlights syntax in code examples on blogs, forums and in fact on any web pages. It's very easy to use because it works automatically: finds blocks of code, detects a language, highlights it. [Learn more.](http://softwaremaniacs.org/soft/highlight/en/) + +**Python** + + @requires_authorization + def somefunc(param1='', param2=0): + r'''A docstring''' + if param1 > param2: # interesting + print 'Gre\'ater' + return (param2 - param1 + 1) or None + + class SomeClass:
pass + + >>> message = '''interpreter + ... prompt''' + + +**Python's profiler output** + + 261917242 function calls in 686.251 CPU seconds + + ncalls tottime filename:lineno(function) + 152824 513.894 {method 'sort' of 'list' objects} + 129590630 83.894 rrule.py:842(__cmp__) + 129590630 82.439 {cmp} + 153900 1.296 rrule.py:399(_iter) + 304393/151570 0.963 rrule.py:102(_iter_cached) + + +**Ruby** + + class A < B; def self.create(object = User) object end end + class Zebra; def inspect; "X#{2 + self.object_id}" end end + + module ABC::DEF + include Comparable + + # @param test + # @return [String] nothing + def foo(test) + Thread.new do |blockvar| + ABC::DEF.reverse(:a_symbol, :'a symbol', :<=>, 'test' + test) + end.join + end + + def [](index) self[index] end + def ==(other) other == self end + end + + anIdentifier = an_identifier + Constant = 1 + render action: :new + +**Haml** + + !!! XML + %html + %body + %h1.jumbo{:id=>"a", :style=>'font-weight: normal', :title=>title} highlight.js + /html comment + -# ignore this line + %ul(style='margin: 0') + -items.each do |i| + %i= i + = variable + =variable2 + ~ variable3 + ~variable4 + The current year is #{DataTime.now.year}. + +**Perl** + + # loads object + sub load + { + my $flds = $c->db_load($id,@_) || do { + Carp::carp "Can`t load (class: $c, id: $id): '$!'"; return undef + }; + my $o = $c->_perl_new(); + $id12 = $id / 24 / 3600; + $o->{'ID'} = $id12 + 123; + #$o->{'SHCUT'} = $flds->{'SHCUT'}; + my $p = $o->props; + my $vt; + $string =~ m/^sought_text$/; + $items = split //, 'abc'; + for my $key (keys %$p) + { + if(${$vt.'::property'}) { + $o->{$key . '_real'} = $flds->{$key}; + tie $o->{$key}, 'CMSBuilder::Property', $o, $key; + } + } + $o->save if delete $o->{'_save_after_load'}; + return $o; + } + + =head1 NAME + POD till the end of file + +**PHP** + + require_once 'Zend/Uri/Http.php'; + + abstract class URI extends BaseURI + { + + /** + * Returns a URI + * + * @return URI + */ + static public function _factory($stats = array(), $uri = 'http') + { + $uri = explode(':', $uri, 0b10); + $schemeSpecific = isset($uri[1]) ? $uri[1] : ''; + $desc = 'Multi + line description'; + + // Security check + if (!ctype_alnum($scheme)) { + throw new Zend_Uri_Exception('Illegal scheme'); + } + + return [ + 'uri' => $uri, + 'value' => null, + ]; + } + } + + __halt_compiler () ; datahere + datahere + datahere */ + datahere + +**Scala** + + object abstractTypes extends Application { + abstract class SeqBuffer { + type T; val element: Seq[T]; def length = element.length + } + } + + /** Turn command line arguments to uppercase */ + object Main { + def main(args: Array[String]) { + val res = for (a <- args) yield a.toUpperCase + println("Arguments: " + res.toString) + } + } + + /** Maps are easy to use in Scala. */ + object Maps { + val colors = Map("red" -> 0xFF0000, + "turquoise" -> 0x00FFFF, + "black" -> 0x000000, + "orange" -> 0xFF8040, + "brown" -> 0x804000) + def main(args: Array[String]) { + for (name <- args) println( + colors.get(name) match { + case Some(code) => + name + " has code: " + code + case None => + "Unknown color: " + name + } + ) + } + } + +**Go** + + package main + + import ( + "fmt" + "rand" + "os" + ) + + const ( + Sunday = iota + Partyday + numberOfDays // this constant is not exported + ) + + type Foo interface { + FooFunc(int, float32) (complex128, []int) + } + + // simple comment + type Bar struct { + os.File /* multi + line + comment */ + + PublicData chan int + } + + func main() { + ch := make(chan int) + ch <- 1 + x, ok := <- ch + ok = true + x = nil + float_var := 1.0e10 + defer fmt.Println('\'') + defer fmt.Println(`exitting now\`) + var fv1 float64 = 0.75 + go println(len("hello world!")) + return + } + +**XML** + + <?xml version="1.0"?> + <response value="ok" xml:lang="en"> + <text>Ok</text> + <comment html_allowed="true"/> + <ns1:description><![CDATA[ + CDATA is <not> magical. + ]]></ns1:description> + <a></a> <a/> + </response> + + +**HTML (with inline css and javascript)** + + <!DOCTYPE html> + <title>Title</title> + + <style>body {width: 500px;}</style> + + <script type="application/javascript"> + function $init() {return true;} + </script> + + <body> + <p checked class="title" id='title'>Title</p> + <!-- here goes the rest of the page --> + </body> + +**Lasso** + + <?LassoScript + /* Lasso 8 */ + local('query' = 'SELECT * FROM `'+var:'table'+'` WHERE `id` > 10 + ORDER BY `Name` LIMIT 30'); + Inline: -Username=$DBuser, -Password=$DBpass, -Database=$DBname, -sql=#query; + var("class.name" = (found_count != 0 ? `subtotal` | `nonefound`)); + records; + output: ?><tr>[loop_count]</tr><?=; + /records; + /Inline; + ?><div class="[$class.name]">[found_count]</div> + [noprocess] causes [delimiters] to be skipped until the next [/noprocess] + <?lasso + /* Lasso 9 */ + define strings_combine(value::string, ...other)::string => { + local(result = #value->append(#other->asString)) + return #result + } + /**! descriptive text */ + define person => type { + data name::string, protected nickname + data birthdate::date + data private ssn = null + public showName() => return .'name' + protected fullName() => '"' + .nickname + '"' + .'name' + public ssnListed => .ssn ? true | false + } + define person->name=(value) => { + .'name' = #value + return self->'name' + } + // query expression + with n in array(-1, 0xABCD, 3.14159e14) + let swapped = pair(#n->second, #n->first) + group #swapped by #n->first into t + let key = #t->key + order by #key + select pair(#key, #t) + do {^ + #n->upperCase + ^} + ?> + +**Markdown** + + # hello world + + you can write text [with links](http://example.com). + + * one _thing_ has *em*phasis + * two __things__ are **bold** + + --- + + hello world + =========== + + <this_is inline="xml"></this_is> + + > markdown is so cool + + so are code segments + + 1. one thing (yeah!) + 2. two thing `i can write code`, and `more` wipee! + +**AsciiDoc** + + Hello, World! + ============ + Author Name, <author@domain.foo> + + you can write text http://example.com[with links], optionally + using an explicit link:http://example.com[link prefix]. + + * single quotes around a phrase place 'emphasis' + ** alternatively, you can put underlines around a phrase to add _emphasis_ + * astericks around a phrase make the text *bold* + * pluses around a phrase make it +monospaced+ + + - escape characters are supported + - you can escape a quote inside emphasized text like 'here\'s johnny!' + + term:: definition + another term:: another definition + + // this is just a comment + + Let's make a break. + + ''' + + //// + we'll be right with you + + after this brief interruption. + //// + + == We're back! + + Want to see a image::images/tiger.png[Tiger]? + + .Nested highlighting + ++++ + <this_is inline="xml"></this_is> + ++++ + + ____ + asciidoc is so powerful. + ____ + + another quote: + + [quote, Sir Arthur Conan Doyle, The Adventures of Sherlock Holmes] + ____ + When you have eliminated all which is impossible, then whatever remains, however improbable, must be the truth. + ____ + + Getting Literal + --------------- + + want to get literal? prefix a line with a space. + + .... + I'll join that party, too. + .... + + . one thing (yeah!) + . two thing `i can write code`, and `more` wipee! + + NOTE: AsciiDoc is quite cool, you should try it. + +**Django templates** + + {% if articles|length %} + {% for article in articles %} + + {# Striped table #} + <tr class="{% cycle odd,even %}"> + <td>{{ article|default:"Hi... "|escape }}</td> + <td {% if article.today %}class="today"{% endif %}>{{ article.date|date:"d.m.Y" }}</td> + </tr> + + {% endfor %} + {% endif %} + + {% comment %} + Comments may be long and + multiline. + {% endcomment %} + +**Handlebars** + + <h3>Hours</h3> + + <ul> + {{#each content.users}} + <li {{bindAttr hello="world"}}>{{firstName}}</li> + {{/each}} + </ul> + +**CSS** + + @media screen and (-webkit-min-device-pixel-ratio: 0) { + body:first-of-type pre::after { + content: 'highlight: ' attr(class); + } + body { + background: linear-gradient(45deg, blue, red); + } + } + + @import url('print.css'); + @page:right { + margin: 1cm 2cm 1.3cm 4cm; + } + + @font-face { + font-family: Chunkfive; src: url('Chunkfive.otf'); + } + + div.text, + #content, + li[lang=ru] { + font: Tahoma, Chunkfive, sans-serif; + background: url('hatch.png') /* wtf? */; color: #F0F0F0 !important; + width: 100%; + } + +**SCSS** + + @import "compass/reset"; + + // variables + $colorGreen: #008000; + $colorGreenDark: darken($colorGreen, 10); + + @mixin container { + max-width: 980px; + } + + // mixins with parameters + @mixin button($color:green) { + @if ($color == green) { + background-color: #008000; + } + @else if ($color == red) { + background-color: #B22222; + } + } + + button { + @include button(red); + } + + div, + .navbar, + #header, + input[type="input"] { + font-family: "Helvetica Neue", Arial, sans-serif; + width: auto; + margin: 0 auto; + display: block; + } + + .row-12 > [class*="spans"] { + border-left: 1px solid #B5C583; + } + + // nested definitions + ul { + width: 100%; + padding: { + left: 5px; right: 5px; + } + li { + float: left; margin-right: 10px; + .home { + background: url('http://placehold.it/20') scroll no-repeat 0 0; + } + } + } + + .banner { + @extend .container; + } + + a { + color: $colorGreen; + &:hover { color: $colorGreenDark; } + &:visited { color: #c458cb; } + } + + @for $i from 1 through 5 { + .span#{$i} { + width: 20px*$i; + } + } + + @mixin mobile { + @media screen and (max-width : 600px) { + @content; + } + } + +**JSON** + + [ + { + "title": "apples", + "count": [12000, 20000], + "description": {"text": "...", "sensitive": false} + }, + { + "title": "oranges", + "count": [17500, null], + "description": {"text": "...", "sensitive": false} + } + ] + +**JavaScript** + + function $initHighlight(block, flags) { + try { + if (block.className.search(/\bno\-highlight\b/) != -1) + return processBlock(block, true, 0x0F) + ' class=""'; + } catch (e) { + /* handle exception */ + + var e4x = + <div>Example + <p>1234</p></div>; + } + for (var i = 0 / 2; i < classes.length; i++) { // "0 / 2" should not be parsed as regexp + if (checkCondition(classes[i]) === undefined) + return /\d+[\s/]/g; + } + } + +**CoffeeScript** + + # Divisions + x = 6/foo/i + x = 6 /foo + x = 6 / foo + x = 6 /foo * 2/gm + x = f /foo + x = f / foo / gm + x = f /foo * 2/6 + + # Regexps + x = f /6 * 2/ - 3 + x = f /foo * 2/gm + x = if true then /\n/ else /[.,]+/ + + grade = (student, period=(if b? then 7 else 6), messages={"A": "Excellent"}) -> + if student.excellentWork + "A+" + else if student.okayStuff + if student.triedHard then "B" else "B-" + else + "C" + + square = (x) -> x * x + + two = -> 2 + + math = + root: Math.sqrt + square: square + cube: (x) -> x * square x + + race = (winner, runners...) -> + print winner, runners + + class Animal extends Being + constructor: (@name) -> + + move: (meters) -> + alert @name + " moved #{meters}m." + + hi = `function() { + return [document.title, "Hello JavaScript"].join(": "); + }` + + heredoc = """ + CoffeeScript subst test #{ 010 + 0xf / 0b10 + "nested string #{ /\n/ }"} + """ + + ### + CoffeeScript Compiler v1.2.0 + Released under the MIT License + ### + + OPERATOR = /// ^ ( + ?: [-=]> # function + ) /// + +**ActionScript** + + package org.example.dummy { + import org.dummy.*; + + /*define package inline interface*/ + public interface IFooBarzable { + public function foo(... pairs):Array; + } + + public class FooBar implements IFooBarzable { + static private var cnt:uint = 0; + private var bar:String; + + //constructor + public function TestBar(bar:String):void { + bar = bar; + ++cnt; + } + + public function foo(... pairs):Array { + pairs.push(bar); + return pairs; + } + } + } + +**VBScript** + + ' creating configuration storage and initializing with default values + Set cfg = CreateObject("Scripting.Dictionary") + + ' reading ini file + for i = 0 to ubound(ini_strings) + s = trim(ini_strings(i)) + + ' skipping empty strings and comments + if mid(s, 1, 1) <> "#" and len(s) > 0 then + ' obtaining key and value + parts = split(s, "=", -1, 1) + + if ubound(parts)+1 = 2 then + parts(0) = trim(parts(0)) + parts(1) = trim(parts(1)) + + ' reading configuration and filenames + select case lcase(parts(0)) + case "uncompressed""_postfix" cfg.item("uncompressed""_postfix") = parts(1) + case "f" + options = split(parts(1), "|", -1, 1) + if ubound(options)+1 = 2 then + ' 0: filename, 1: options + ff.add trim(options(0)), trim(options(1)) + end if + end select + end if + end if + next + +**VB.NET** + + Import System + Import System.IO + #Const DEBUG = True + + Namespace Highlighter.Test + ''' <summary>This is an example class.</summary> + Public Class Program + Protected Shared hello As Integer = 3 + Private Const ABC As Boolean = False + + #Region "Code" + ' Cheers! + <STAThread()> _ + Public Shared Sub Main(ByVal args() As String, ParamArray arr As Object) Handles Form1.Click + On Error Resume Next + If ABC Then + While ABC : Console.WriteLine() : End While + For i As Long = 0 To 1000 Step 123 + Try + System.Windows.Forms.MessageBox.Show(CInt("1").ToString()) + Catch ex As Exception ' What are you doing? Well... + Dim exp = CType(ex, IOException) + REM ORZ + Return + End Try + Next + Else + Dim l As New System.Collections.List<String>() + SyncLock l + If TypeOf l Is Decimal And l IsNot Nothing Then + RemoveHandler button1.Paint, delegate + End If + Dim d = New System.Threading.Thread(AddressOf ThreadProc) + Dim a = New Action(Sub(x, y) x + y) + Static u = From x As String In l Select x.Substring(2, 4) Where x.Length > 0 + End SyncLock + Do : Laugh() : Loop Until hello = 4 + End If + End Sub + #End Region + End Class + End Namespace + + +**HTTP** + + POST /task?id=1 HTTP/1.1 + Host: example.org + Content-Type: application/json; charset=utf-8 + Content-Length: 19 + + {"status": "ok", "extended": true} + +**Lua** + + --[[ + Simple signal/slot implementation + ]] + local signal_mt = { + __index = { + register = table.insert + } + } + function signal_mt.__index:emit(... --[[ Comment in params ]]) + for _, slot in ipairs(self) do + slot(self, ...) + end + end + local function create_signal() + return setmetatable({}, signal_mt) + end + + -- Signal test + local signal = create_signal() + signal:register(function(signal, ...) + print(...) + end) + signal:emit('Answer to Life, the Universe, and Everything:', 42) + + --[==[ [=[ [[ + Nested ]] + multi-line ]=] + comment ]==] + [==[ Nested + [=[ multi-line + [[ string + ]] ]=] ]==] + +**AppleScript** + + repeat 5 times + if foo is greater than bar then + display dialog "Hello there" + else + beep + end if + end repeat + + (* comment (*nested comment*) *) + on do_something(s, y) + return {s + pi, y mod 4} + end do_something + + do shell script "/bin/echo 'hello'" + + +**Delphi** + + TList=Class(TObject) + Private + Some: String; + Public + Procedure Inside; // Suxx + End;{TList} + + Procedure CopyFile(InFileName,var OutFileName:String); + Const + BufSize=4096; (* Huh? *) + Var + InFile,OutFile:TStream; + Buffer:Array[1..BufSize] Of Byte; + ReadBufSize:Integer; + Begin + InFile:=Nil; + OutFile:=Nil; + Try + InFile:=TFileStream.Create(InFileName,fmOpenRead); + OutFile:=TFileStream.Create(OutFileName,fmCreate); + Repeat + ReadBufSize:=InFile.Read(Buffer,BufSize); + OutFile.Write(Buffer,ReadBufSize); + Until ReadBufSize<>BufSize; + Log('File '''+InFileName+''' copied'#13#10); + Finally + InFile.Free; + OutFile.Free; + End;{Try} + End;{CopyFile} + +**Java** + + /** + * @author John Smith <john.smith@example.com> + * @version 1.0 + */ + package l2f.gameserver.model; + + import java.util.ArrayList; + + public abstract class L2Character extends L2Object { + public static final Short ABNORMAL_EFFECT_BLEEDING = 0x0001; // not sure + + public void moveTo(int x, int y, int z) { + _ai = null; + _log.warning("Should not be called"); + if (1 > 5) { + return; + } + } + + /** Task of AI notification */ + @SuppressWarnings( { "nls", "unqualified-field-access", "boxing" }) + public class NotifyAITask implements Runnable { + private final CtrlEvent _evt; + + public void run() { + try { + getAI().notifyEvent(_evt, null, null); + } catch (Throwable t) { + t.printStackTrace(); + } + } + } + } + +**C++** + + #include <iostream> + + int main(int argc, char *argv[]) { + + /* An annoying "Hello World" example */ + for (auto i = 0; i < 0xFFFF; i++) + cout << "Hello, World!" << endl; + + char c = '\n'; + unordered_map <string, vector<string> > m; + m["key"] = "\\\\"; // this is an error + + return -2e3 + 12l; + } + +**Objective C** + + #import <UIKit/UIKit.h> + #import "Dependency.h" + + @protocol WorldDataSource + @optional + - (NSString*)worldName; + @required + - (BOOL)allowsToLive; + @end + + @interface Test : NSObject <HelloDelegate, WorldDataSource> { + NSString *_greeting; + } + + @property (nonatomic, readonly) NSString *greeting; + - (IBAction) show; + @end + + @implementation Test + + @synthesize test=_test; + + + (id) test { + return [self testWithGreeting:@"Hello, world!\nFoo bar!"]; + } + + + (id) testWithGreeting:(NSString*)greeting { + return [[[self alloc] initWithGreeting:greeting] autorelease]; + } + + - (id) initWithGreeting:(NSString*)greeting { + if ( (self = [super init]) ) { + _greeting = [greeting retain]; + } + return self; + } + + - (void) dealloc { + [_greeting release]; + [super dealloc]; + } + + @end + +**Vala** + + using DBus; + + namespace Test { + class Foo : Object { + public signal void some_event (); // definition of the signal + public void method () { + some_event (); // emitting the signal (callbacks get invoked) + } + } + } + + /* defining a class */ + class Track : GLib.Object, Test.Foo { /* subclassing 'GLib.Object' */ + public double mass; /* a public field */ + public double name { get; set; } /* a public property */ + private bool terminated = false; /* a private field */ + public void terminate() { /* a public method */ + terminated = true; + } + } + + const ALL_UPPER_CASE = "you should follow this convention"; + + var t = new Track(); // same as: Track t = new Track(); + var s = "hello"; // same as: string s = "hello"; + var l = new List<int>(); // same as: List<int> l = new List<int>(); + var i = 10; // same as: int i = 10; + + + #if (ololo) + Regex regex = /foo/; + #endif + + /* + * Entry point can be outside class + */ + void main () { + var long_string = """ + Example of "verbatim string". + Same as in @"string" in C# + """ + var foo = new Foo (); + foo.some_event.connect (callback_a); // connecting the callback functions + foo.some_event.connect (callback_b); + foo.method (); + } + +**C** + + using System; + + #pragma warning disable 414, 3021 + + public class Program + { + /// <summary>The entry point to the program.</summary> + public static int Main(string[] args) + { + Console.WriteLine("Hello, World!"); + string s = @"This + ""string"" + spans + multiple + lines!"; + return 0; + } + } + + async Task<int> AccessTheWebAsync() + { + // ... + string urlContents = await getStringTask; + return urlContents.Length; + } + +**F** + + open System + + // Single line comment... + (* + This is a + multiline comment. + *) + let checkList alist = + match alist with + | [] -> 0 + | [a] -> 1 + | [a; b] -> 2 + | [a; b; c] -> 3 + | _ -> failwith "List is too big!" + + + type IEncoding = + abstract Encode : string -> string + abstract Decode : string -> string + + let text = "Some text..." + let text2 = @"A ""verbatim"" string..." + let catalog = """ + Some "long" string... + """ + + let rec fib x = if x <= 2 then 1 else fib(x-1) + fib(x-2) + + let fibs = + Async.Parallel [ for i in 0..40 -> async { return fib(i) } ] + |> Async.RunSynchronously + + type Sprocket(gears) = + member this.Gears : int = gears + + [<AbstractClass>] + type Animal = + abstract Speak : unit -> unit + + type Widget = + | RedWidget + | GreenWidget + + type Point = {X: float; Y: float;} + + [<Measure>] + type s + let minutte = 60<s> + +**D** + + #!/usr/bin/rdmd + // Computes average line length for standard input. + import std.stdio; + + /+ + this is a /+ nesting +/ comment + +/ + + enum COMPILED_ON = __TIMESTAMP__; // special token + + enum character = '©'; + enum copy_valid = '&copy;'; + enum backslash_escaped = '\\'; + + // string literals + enum str = `hello "world"!`; + enum multiline = r"lorem + ipsum + dolor"; // wysiwyg string, no escapes here allowed + enum multiline2 = "sit + amet + \"adipiscing\" + elit."; + enum hex = x"66 6f 6f"; // same as "foo" + + #line 5 + + // float literals + enum f = [3.14f, .1, 1., 1e100, 0xc0de.01p+100]; + + static if (something == true) { + import std.algorithm; + } + + void main() pure nothrow @safe { + ulong lines = 0; + double sumLength = 0; + foreach (line; stdin.byLine()) { + ++lines; + sumLength += line.length; + } + writeln("Average line length: ", + lines ? sumLength / lines : 0); + } + +**RenderMan RSL** + + #define TEST_DEFINE 3.14 + /* plastic surface shader + * + * Pixie is: + * (c) Copyright 1999-2003 Okan Arikan. All rights reserved. + */ + + surface plastic (float Ka = 1, Kd = 0.5, Ks = 0.5, roughness = 0.1; + color specularcolor = 1;) { + normal Nf = faceforward (normalize(N),I); + Ci = Cs * (Ka*ambient() + Kd*diffuse(Nf)) + specularcolor * Ks * + specular(Nf,-normalize(I),roughness); + Oi = Os; + Ci *= Oi; + } + +**RenderMan RIB** + + FrameBegin 0 + Display "Scene" "framebuffer" "rgb" + Option "searchpath" "shader" "+&:/home/kew" + Option "trace" "int maxdepth" [4] + Attribute "visibility" "trace" [1] + Attribute "irradiance" "maxerror" [0.1] + Attribute "visibility" "transmission" "opaque" + Format 640 480 1.0 + ShadingRate 2 + PixelFilter "catmull-rom" 1 1 + PixelSamples 4 4 + Projection "perspective" "fov" 49.5502811377 + Scale 1 1 -1 + + WorldBegin + + ReadArchive "Lamp.002_Light/instance.rib" + Surface "plastic" + ReadArchive "Cube.004_Mesh/instance.rib" + # ReadArchive "Sphere.010_Mesh/instance.rib" + # ReadArchive "Sphere.009_Mesh/instance.rib" + ReadArchive "Sphere.006_Mesh/instance.rib" + + WorldEnd + FrameEnd + +**MEL (Maya Embedded Language)** + + proc string[] getSelectedLights() + + { + string $selectedLights[]; + + string $select[] = `ls -sl -dag -leaf`; + + for ( $shape in $select ) + { + // Determine if this is a light. + // + string $class[] = getClassification( `nodeType $shape` ); + + + if ( ( `size $class` ) > 0 && ( "light" == $class[0] ) ) + { + $selectedLights[ `size $selectedLights` ] = $shape; + } + } + + // Result is an array of all lights included in + + // current selection list. + return $selectedLights; + } + +**GLSL** + + // vertex shader + #version 150 + in vec2 in_Position; + in vec3 in_Color; + + out vec3 ex_Color; + void main(void) { + gl_Position = vec4(in_Position.x, in_Position.y, 0.0, 1.0); + ex_Color = in_Color; + } + + + // geometry shader + #version 150 + + layout(triangles) in; + layout(triangle_strip, max_vertices = 3) out; + + void main() { + for(int i = 0; i < gl_in.length(); i++) { + gl_Position = gl_in[i].gl_Position; + EmitVertex(); + } + EndPrimitive(); + } + + + // fragment shader + #version 150 + precision highp float; + + in vec3 ex_Color; + out vec4 gl_FragColor; + + void main(void) { + gl_FragColor = vec4(ex_Color, 1.0); + } + +**SQL** + + BEGIN; + CREATE TABLE "topic" ( + "id" serial NOT NULL PRIMARY KEY, + "forum_id" integer NOT NULL, + "subject" varchar(255) NOT NULL + ); + ALTER TABLE "topic" ADD CONSTRAINT forum_id FOREIGN KEY ("forum_id") REFERENCES "forum" ("id"); + + -- Initials + insert into "topic" ("forum_id", "subject") values (2, 'D''artagnian'); + + select count(*) from cicero_forum; + + -- this line lacks ; at the end to allow people to be sloppy and omit it in one-liners + COMMIT + +**SmallTalk** + + Object>>method: num + "comment 123" + | var1 var2 | + (1 to: num) do: [:i | |var| ^i]. + Klass with: var1. + Klass new. + arr := #('123' 123.345 #hello Transcript var $@). + arr := #(). + var2 = arr at: 3. + ^ self abc + + heapExample + "HeapTest new heapExample" + "Multiline + decription" + | n rnd array time sorted | + n := 5000. + "# of elements to sort" + rnd := Random new. + array := (1 to: n) + collect: [:i | rnd next]. + "First, the heap version" + time := Time + millisecondsToRun: [sorted := Heap withAll: array. + 1 + to: n + do: [:i | + sorted removeFirst. + sorted add: rnd next]]. + Transcript cr; show: 'Time for Heap: ' , time printString , ' msecs'. + "The quicksort version" + time := Time + millisecondsToRun: [sorted := SortedCollection withAll: array. + 1 + to: n + do: [:i | + sorted removeFirst. + sorted add: rnd next]]. + Transcript cr; show: 'Time for SortedCollection: ' , time printString , ' msecs' + +**Lisp** + + #!/usr/bin/env csi + + (defun prompt-for-cd () + "Prompts + for CD" + (prompt-read "Title" 1.53 1 2/4 1.7 1.7e0 2.9E-4 +42 -7 #b001 #b001/100 #o777 #O777 #xabc55 #c(0 -5.6)) + (prompt-read "Artist" &rest) + (or (parse-integer (prompt-read "Rating") :junk-allowed t) 0) + (if x (format t "yes") (format t "no" nil) ;and here comment + ) + ;; second line comment + '(+ 1 2) + (defvar *lines*) ; list of all lines + (position-if-not #'sys::whitespacep line :start beg)) + (quote (privet 1 2 3)) + '(hello world) + (* 5 7) + (1 2 34 5) + (:use "aaaa") + (let ((x 10) (y 20)) + (print (+ x y)) + ) + +**Clojure** + + ; You must not remove this notice, or any other, from this software. + + (ns ^{:doc "The core Clojure language." + :author "Rich Hickey"} + clojure.core) + + (def unquote) + + (def + ^{:macro true + :added "1.0"} + let (fn* let [&form &env & decl] (cons 'let* decl))) + + (def + + defn (fn defn [&form &env name & fdecl] + (let [m (conj {:arglists (list 'quote (sigs fdecl))} m) + m (let [inline (:inline m) + ifn (first inline) + iname (second inline)] + ;; same as: (if (and (= 'fn ifn) (not (symbol? iname))) ...) + (if (if (clojure.lang.Util/equiv 'fn ifn) + (if (instance? clojure.lang.Symbol iname) false true)) + ;; inserts the same fn name to the inline fn if it does not have one + (assoc m :inline (cons ifn (cons (clojure.lang.Symbol/intern (.concat (.getName ^clojure.lang.Symbol name) "__inliner")) + (next inline)))) + m)) + m (conj (if (meta name) (meta name) {}) m)] + (list 'def (with-meta name m) + ;;todo - restore propagation of fn name + ;;must figure out how to convey primitive hints to self calls first + (cons `fn fdecl) )))) + + (. (var defn) (setMacro)) + +**Ini file** + + ;Settings relating to the location and loading of the database + [Database] + ProfileDir=. + ShowProfileMgr=smart + Profile1_Name[] = "\|/_-=MegaDestoyer=-_\|/" + DefaultProfile=True + AutoCreate = no + + [AutoExec] + use-prompt="prompt" + Glob=autoexec_*.ini + AskAboutIgnoredPlugins=0 + +**Apache** + + # rewrite`s rules for wordpress pretty url + LoadModule rewrite_module modules/mod_rewrite.so + RewriteCond %{REQUEST_FILENAME} !-f + RewriteCond %{REQUEST_FILENAME} !-d + RewriteRule . index.php [NC,L] + + ExpiresActive On + ExpiresByType application/x-javascript "access plus 1 days" + + <Location /maps/> + RewriteMap map txt:map.txt + RewriteMap lower int:tolower + RewriteCond %{REQUEST_URI} ^/([^/.]+)\.html$ [NC] + RewriteCond ${map:${lower:%1}|NOT_FOUND} !NOT_FOUND + RewriteRule .? /index.php?q=${map:${lower:%1}} [NC,L] + </Location> + +**nginx** + + user www www; + worker_processes 2; + pid /var/run/nginx.pid; + error_log /var/log/nginx.error_log debug | info | notice | warn | error | crit; + + events { + connections 2000; + use kqueue | rtsig | epoll | /dev/poll | select | poll; + } + + http { + log_format main '$remote_addr - $remote_user [$time_local] ' + '"$request" $status $bytes_sent ' + '"$http_referer" "$http_user_agent" ' + '"$gzip_ratio"'; + + send_timeout 3m; + client_header_buffer_size 1k; + + gzip on; + gzip_min_length 1100; + + #lingering_time 30; + + server { + server_name one.example.com www.one.example.com; + access_log /var/log/nginx.access_log main; + + rewrite (.*) /index.php?page=$1 break; + + location / { + proxy_pass http://127.0.0.1/; + proxy_redirect off; + proxy_set_header Host $host; + proxy_set_header X-Real-IP $remote_addr; + charset koi8-r; + } + + location /api/ { + fastcgi_pass 127.0.0.1:9000; + } + + location ~* \.(jpg|jpeg|gif)$ { + root /spool/www; + } + } + } + +**Diff** + + Index: languages/ini.js + =================================================================== + --- languages/ini.js (revision 199) + +++ languages/ini.js (revision 200) + @@ -1,8 +1,7 @@ + hljs.LANGUAGES.ini = + { + case_insensitive: true, + - defaultMode: + - { + + defaultMode: { + contains: ['comment', 'title', 'setting'], + illegal: '[^\\s]' + }, + + *** /path/to/original timestamp + --- /path/to/new timestamp + *************** + *** 1,3 **** + --- 1,9 ---- + + This is an important + + notice! It should + + therefore be located at + + the beginning of this + + document! + + ! compress the size of the + ! changes. + + It is important to spell + +**DOS batch files** + + cd \ + copy a b + ping 192.168.0.1 + @rem ping 192.168.0.1 + net stop sharedaccess + del %tmp% /f /s /q + del %temp% /f /s /q + ipconfig /flushdns + taskkill /F /IM JAVA.EXE /T + + cd Photoshop/Adobe Photoshop CS3/AMT/ + if exist application.sif ( + ren application.sif _application.sif + ) else ( + ren _application.sif application.sif + ) + + taskkill /F /IM proquota.exe /T + + sfc /SCANNOW + + set path = test + + xcopy %1\*.* %2 + +**Bash** + + #!/bin/bash + + ###### BEGIN CONFIG + ACCEPTED_HOSTS="/root/.hag_accepted.conf" + BE_VERBOSE=false + ###### END CONFIG + + if [ "$UID" -ne 0 ] + then + echo "Superuser rights is required" + echo 'Printing the # sign' + exit 2 + fi + + if test $# -eq 0 + then + elif test [ $1 == 'start' ] + else + fi + + genApacheConf(){ + if [[ "$2" = "www" ]] + then + full_domain=$1 + else + full_domain=$2.$1 + fi + host_root="${APACHE_HOME_DIR}$1/$2/$(title)" + echo -e "# Host $1/$2 :" + } + +**CMake** + + project(test) + cmake_minimum_required(VERSION 2.6) + + # IF LINUX + if (${CMAKE_SYSTEM_NAME} MATCHES Linux) + message("\nOS:\t\tLinux") + endif() + + # IF WINDOWS + if (${CMAKE_SYSTEM_NAME} MATCHES Windows) + message("\nOS:\t\tWindows") + endif() + + set(test test0.cpp test1.cpp test2.cpp) + + include_directories(./) + + set(EXECUTABLE_OUTPUT_PATH ../bin) + + add_subdirectory(src) + + add_executable(test WIN32 ${test}) + + target_link_libraries(test msimg32) + +**Axapta** + + class ExchRateLoadBatch extends RunBaseBatch { + ExchRateLoad rbc; + container currencies; + boolean actual; + boolean overwrite; + date beg; + date end; + + #define.CurrentVersion(5) + + #localmacro.CurrentList + currencies, + actual, + beg, + end + #endmacro + } + + public boolean unpack(container packedClass) { + container base; + boolean ret; + Integer version = runbase::getVersion(packedClass); + + switch (version) { + case #CurrentVersion: + [version, #CurrentList] = packedClass; + return true; + default: + return false; + } + return ret; + } + +**Oracle Rules Language** + + //This is a comment + ABORT "You experienced an abort."; + WARN "THIS IS A WARNING"; + CALL "RIDER_X"; + DONE; + FOR EACH X IN CSV_FILE "d:\lodestar\user\d377.lse" + LEAVE FOR; + END FOR; + IF ((BILL_KW = 0) AND (KW > 0)) THEN + END IF; + INCLUDE "R1"; + LEAVE RIDER; + SELECT BILL_PERIOD + WHEN "WINTER" + BLOCK KWH + FROM 0 TO 400 CHARGE $0.03709 + FROM 400 CHARGE $0.03000 + TOTAL $ENERGY_CHARGE_WIN; + WHEN "SUMMER" + $VOLTAGE_DISCOUNT_SUM = $0.00 + OTHERWISE + $VOLTAGE_DISCOUNT_SUM = $1.00 + END SELECT; + /* Report top five peaks */ + LABEL PK.NM "Peak Number"; + SAVE_UPDATE MV TO TABLE "METERVALUE"; + + FOR EACH INX IN ARRAYUPPERBOUND(#MYARRAY[]) + #MYARRAY[INX].VALUE = 2; + CLEAR #MYARRAY[]; + END FOR + + //Interval Data + HNDL_1_ADD_EDI = INTDADDATTRIBUTE(HNDL_1, "EDI_TRANSACTION", EDI_ID); + HNDL_1_ADD_VAL_MSG = INTDADDVMSG(HNDL_1,"Missing (Status Code 9) values found"); + EMPTY_HNDL = INTDCREATEHANDLE('05/03/2006 00:00:00', '05/03/2006 23:59:59', 3600, "Y", "0", " "); + +**1С + + #Если Клиент Тогда + Перем СимвольныйКодКаталога = "ля-ля-ля"; //комментарий + Функция Сообщить(Знач ТекстСообщения, ТекстСообщения2) Экспорт //комментарий к функции + x=ТекстСообщения+ТекстСообщения2+" + |строка1 + |строка2 + |строка3"; + КонецФункции + #КонецЕсли + + // Процедура ПриНачалеРаботыСистемы + // + Процедура ПриНачалеРаботыСистемы() + Обработки.Помощник.ПолучитьФорму("Форма").Открыть(); + d = '21.01.2008' + КонецПроцедуры + +**AVR Assembler** + + ;* Title: Block Copy Routines + ;* Version: 1.1 + + .include "8515def.inc" + + rjmp RESET ;reset handle + + .def flashsize=r16 ;size of block to be copied + + flash2ram: + lpm ;get constant + st Y+,r0 ;store in SRAM and increment Y-pointer + adiw ZL,1 ;increment Z-pointer + dec flashsize + brne flash2ram ;if not end of table, loop more + ret + + .def ramtemp =r1 ;temporary storage register + .def ramsize =r16 ;size of block to be copied + +**VHDL** + + /* + * RS-trigger with assynch. reset + */ + + library ieee; + use ieee.std_logic_1164.all; + + entity RS_trigger is + generic (T: Time := 0ns); + port ( R, S : in std_logic; + Q, nQ : out std_logic; + reset, clock : in std_logic ); + end RS_trigger; + + architecture behaviour of RS_trigger is + signal QT: std_logic; -- Q(t) + begin + process(clock, reset) is + subtype RS is std_logic_vector (1 downto 0); + begin + if reset = '0' then + QT <= '0'; + else + if rising_edge(C) then + if not (R'stable(T) and S'stable(T)) then + QT <= 'X'; + else + case RS'(R&S) is + when "01" => QT <= '1'; + when "10" => QT <= '0'; + when "11" => QT <= 'X'; + when others => null; + end case; + end if; + end if; + end if; + end process; + + Q <= QT; + nQ <= not QT; + end architecture behaviour; + +**Parser 3** + + @CLASS + base + + @USE + module.p + + @BASE + class + + # Comment for code + @create[aParam1;aParam2][local1;local2] + ^connect[mysql://host/database?ClientCharset=windows-1251] + ^for[i](1;10){ + <p class="paragraph">^eval($i+10)</p> + ^connect[mysql://host/database]{ + $tab[^table::sql{select * from `table` where a='1'}] + $var_Name[some${value}] + } + } + + ^rem{ + Multiline comment with code: $var + ^while(true){ + ^for[i](1;10){ + ^sleep[] + } + } + } + ^taint[^#0A] + + @GET_base[] + ## Comment for code + # Isn't comment + $result[$.hash_item1[one] $.hash_item2[two]] + +**TeX** + + \documentclass{article} + \usepackage[koi8-r]{inputenc} + \hoffset=0pt + \voffset=.3em + \tolerance=400 + \newcommand{\eTiX}{\TeX} + \begin{document} + \section*{Highlight.js} + \begin{table}[c|c] + $\frac 12\, + \, \frac 1{x^3}\text{Hello \! world}$ & \textbf{Goodbye\~ world} \\\eTiX $ \pi=400 $ + \end{table} + Ch\'erie, \c{c}a ne me pla\^\i t pas! % comment \b + G\"otterd\"ammerung~45\%=34. + $$ + \int\limits_{0}^{\pi}\frac{4}{x-7}=3 + $$ + \end{document} + +**Haskell** + + {-# LANGUAGE TypeSynonymInstances #-} + module Network.UDP + ( DataPacket(..) + , openBoundUDPPort + , openListeningUDPPort + , pingUDPPort + , sendUDPPacketTo + , recvUDPPacket + , recvUDPPacketFrom + ) where + + {- this is a {- nested -} comment -} + + import qualified Data.ByteString as Strict (ByteString, concat, singleton) + import qualified Data.ByteString.Lazy as Lazy (ByteString, toChunks, fromChunks) + import Data.ByteString.Char8 (pack, unpack) + import Network.Socket hiding (sendTo, recv, recvFrom) + import Network.Socket.ByteString (sendTo, recv, recvFrom) + + -- Type class for converting StringLike types to and from strict ByteStrings + class DataPacket a where + toStrictBS :: a -> Strict.ByteString + fromStrictBS :: Strict.ByteString -> a + + instance DataPacket Strict.ByteString where + toStrictBS = id + {-# INLINE toStrictBS #-} + fromStrictBS = id + {-# INLINE fromStrictBS #-} + + openBoundUDPPort :: String -> Int -> IO Socket + openBoundUDPPort uri port = do + s <- getUDPSocket + bindAddr <- inet_addr uri + let a = SockAddrInet (toEnum port) bindAddr + bindSocket s a + return s + + pingUDPPort :: Socket -> SockAddr -> IO () + pingUDPPort s a = sendTo s (Strict.singleton 0) a >> return () + +**Erlang** + + -module(ssh_cli). + + -behaviour(ssh_channel). + + -include("ssh.hrl"). + %% backwards compatibility + -export([listen/1, listen/2, listen/3, listen/4, stop/1]). + + %% state + -record(state, { + cm, + channel + }). + + test(Foo)->Foo. + + init([Shell, Exec]) -> + {ok, #state{shell = Shell, exec = Exec}}; + init([Shell]) -> + false = not true, + io:format("Hello, \"~p!~n", [atom_to_list('World')]), + {ok, #state{shell = Shell}}. + + concat([Single]) -> Single; + concat(RList) -> + EpsilonFree = lists:filter( + fun (Element) -> + case Element of + epsilon -> false; + _ -> true + end + end, + RList), + case EpsilonFree of + [Single] -> Single; + Other -> {concat, Other} + end. + + union_dot_union({union, _}=U1, {union, _}=U2) -> + union(lists:flatten( + lists:map( + fun (X1) -> + lists:map( + fun (X2) -> + concat([X1, X2]) + end, + union_to_list(U2) + ) + end, + union_to_list(U1) + ))). + + +**Erlang REPL** + + 1> Str = "abcd". + "abcd" + 2> L = test:length(Str). + 4 + 3> Descriptor = {L, list_to_atom(Str)}. + {4,abcd} + 4> L. + 4 + 5> b(). + Descriptor = {4,abcd} + L = 4 + Str = "abcd" + ok + 6> f(L). + ok + 7> b(). + Descriptor = {4,abcd} + Str = "abcd" + ok + 8> {L, _} = Descriptor. + {4,abcd} + 9> L. + 4 + 10> 2#101. + 5 + 11> 1.85e+3. + 1850 + +**Rust** + + use std; + + import std::io; + export fac, test1; + + 123; // type int + 123u; // type uint + 123_u; // type uint + 0xff00; // type int + 0xff_u8; // type u8 + 0b1111_1111_1001_0000_i32; // type i32 + 123.0; // type float + 0.1; // type float + 3f; // type float + 0.1f32; // type f32 + 12E+99_f64; // type f64 + + /* Factorial */ + fn fac(n: int) -> int { + let s: str = "This is + a multi-line string. + + It ends with an unescaped '\"'."; + let c: char = 'Ф'; + + let result = 1, i = 1; + while i <= n { // No parens around the condition + result *= i; + i += 1; + } + ret result; + } + + pure fn pure_length<T>(ls: list<T>) -> uint { /* ... */ } + + type t = map::hashtbl<int,str>; + let x = id::<int>(10); + + // Define some modules. + #[path = "foo.rs"] + mod foo; + + iface seq<T> { + fn len() -> uint; + } + + impl <T> of seq<T> for [T] { + fn len() -> uint { vec::len(self) } + fn iter(b: fn(T)) { + for elt in self { b(elt); } + } + } + + enum list<T> { + nil; + cons(T, @list<T>); + } + + let a: list<int> = cons(7, @cons(13, @nil)); + +**Matlab** + + n = 20; % number of points + points = [random('unid', 100, n, 1), random('unid', 100, n, 1)]; + len = zeros(1, n - 1); + points = sortrows(points); + %% Initial set of points + plot(points(:,1),points(:,2)); + for i = 1: n-1 + len(i) = points(i + 1, 1) - points(i, 1); + end + while(max(len) > 2 * min(len)) + [d, i] = max(len); + k = on_margin(points, i, d, -1); + m = on_margin(points, i + 1, d, 1); + xm = 0; ym = 0; + %% New point + if(i == 1 || i + 1 == n) + xm = mean(points([i,i+1],1)) + ym = mean(points([i,i+1],2)) + else + [xm, ym] = dlg1(points([k, i, i + 1, m], 1), ... + points([k, i, i + 1, m], 2)) + end + + points = [ points(1:i, :); [xm, ym]; points(i + 1:end, :)]; + end + + function [net] = get_fit_network(inputs, targets) + % Create Network + numHiddenNeurons = 20; % Adjust as desired + net = newfit(inputs,targets,numHiddenNeurons); + net.trainParam.goal = 0.01; + net.trainParam.epochs = 1000; + % Train and Apply Network + [net,tr] = train(net,inputs,targets); + end + + foo_matrix = [1, 2, 3; 4, 5, 6]'''; + foo_cell = {1, 2, 3; 4, 5, 6}''.'.'; + +**R** + + library(ggplot2) + + centre <- function(x, type, ...) { + switch(type, + mean = mean(x), + median = median(x), + trimmed = mean(x, trim = .1)) + } + + myVar1 + myVar.2 + data$x + foo "bar" baz + # test "test" + "test # test" + + (123) (1) (10) (0.1) (.2) (1e-7) + (1.2e+7) (2e) (3e+10) (0x0) (0xa) + (0xabcdef1234567890) (123L) (1L) + (0x10L) (10000000L) (1e6L) (1.1L) + (1e-3L) (4123.381E-10i) + (3.) (3.E10) # BUG: .E10 should be part of number + + # Numbers in some different contexts + 1L + 0x40 + .234 + 3. + 1L + 30 + plot(cars, xlim=20) + plot(cars, xlim=0x20) + foo<-30 + my.data.3 <- read() # not a number + c(1,2,3) + 1%%2 + + "this is a quote that spans + multiple lines + \" + + is this still a quote? it should be. + # even still! + + " # now we're done. + + 'same for + single quotes #' + + # keywords + NULL, NA, TRUE, FALSE, Inf, NaN, NA_integer_, + NA_real_, NA_character_, NA_complex_, function, + while, repeat, for, if, in, else, next, break, + ..., ..1, ..2 + + # not keywords + the quick brown fox jumped over the lazy dogs + null na true false inf nan na_integer_ na_real_ + na_character_ na_complex_ Function While Repeat + For If In Else Next Break .. .... "NULL" `NULL` 'NULL' + + # operators + +, -, *, /, %%, ^, >, >=, <, <=, ==, !=, !, &, |, ~, + ->, <-, <<-, $, :, :: + + # infix operator + foo %union% bar + %"test"% + `"test"` + +**Mizar** + + ::: ## Lambda calculus + + environ + + vocabularies LAMBDA, + NUMBERS, + NAT_1, XBOOLE_0, SUBSET_1, FINSEQ_1, XXREAL_0, CARD_1, + ARYTM_1, ARYTM_3, TARSKI, RELAT_1, ORDINAL4, FUNCOP_1; + + :: etc... + + begin + + reserve D for DecoratedTree, + p,q,r for FinSequence of NAT, + x for set; + + definition + let D; + + attr D is LambdaTerm-like means + (dom D qua Tree) is finite & + ::> *143,306 + for r st r in dom D holds + r is FinSequence of {0,1} & + r^<*0*> in dom D implies D.r = 0; + end; + + registration + cluster LambdaTerm-like for DecoratedTree of NAT; + existence; + ::> *4 + end; + + definition + mode LambdaTerm is LambdaTerm-like DecoratedTree of NAT; + end; + + ::: Then we extend this ordinary one-step beta reduction, that is, + ::: any subterm is also allowed to reduce. + definition + let M,N; + + pred M beta N means + ex p st + M|p beta_shallow N|p & + for q st not p is_a_prefix_of q holds + [r,x] in M iff [r,x] in N; + end; + + theorem Th4: + ProperPrefixes (v^<*x*>) = ProperPrefixes v \/ {v} + proof + thus ProperPrefixes (v^<*x*>) c= ProperPrefixes v \/ {v} + proof + let y; + assume y in ProperPrefixes (v^<*x*>); + then consider v1 such that + A1: y = v1 and + A2: v1 is_a_proper_prefix_of v^<*x*> by TREES_1:def 2; + v1 is_a_prefix_of v & v1 <> v or v1 = v by A2,TREES_1:9; + then + v1 is_a_proper_prefix_of v or v1 in {v} by TARSKI:def 1,XBOOLE_0:def 8; + then y in ProperPrefixes v or y in {v} by A1,TREES_1:def 2; + hence thesis by XBOOLE_0:def 3; + end; + let y; + assume y in ProperPrefixes v \/ {v}; + then A3: y in ProperPrefixes v or y in {v} by XBOOLE_0:def 3; + A4: now + assume y in ProperPrefixes v; + then consider v1 such that + A5: y = v1 and + A6: v1 is_a_proper_prefix_of v by TREES_1:def 2; + v is_a_prefix_of v^<*x*> by TREES_1:1; + then v1 is_a_proper_prefix_of v^<*x*> by A6,XBOOLE_1:58; + hence thesis by A5,TREES_1:def 2; + end; + v^{} = v by FINSEQ_1:34; + then + v is_a_prefix_of v^<*x*> & v <> v^<*x*> by FINSEQ_1:33,TREES_1:1; + then v is_a_proper_prefix_of v^<*x*> by XBOOLE_0:def 8; + then y in ProperPrefixes v or y = v & v in ProperPrefixes (v^<*x*>) + by A3,TARSKI:def 1,TREES_1:def 2; + hence thesis by A4; + end; + + + +**Special tests** + +Explicit Python highlighting + + for x in [1, 2, 3]: + count(x) + + +Language set on <pre> + + for x in [1, 2, 3]: + count(x) + +HTML5-style language class (language-python) + + for x in [1, 2, 3]: + count(x) + +Replacing TAB with 4 spaces + + for x in [1, 2, 3]: + count(x) + +Custom markup + + <div id="contents"> + <p>Hello, World!Goodbye, cruel world! + </div> + +Custom markup + TAB replacement + + for x in [1, 2, 3]: + count(x) + if x == 3: + count(x + 1) +