Skrypt kolorujący kod programu

Autor podstrony: Krzysztof Zajączkowski

Stronę tą wyświetlono już: 2889 razy

W końcu ruszyłem swoje cztery litery (a w zasadzie dwie moje ręce) i napisałem skrypt, który koloruje składnię kilku języków programowania, takich jak: C++, Libre Office BASIC, PHP oraz html. Samego skryptu nie publikuję bo raz, że trochę nad nim posiedziałem a dwa, że jest on zoptymalizowany pod moją stronę.

Kolorowanie składni kodu napisanego w C++

Poniżej zamieszczam przykładowy kod źródłowy prostego programu, aby pokazać, jak mój skrypt koloruje kod napisany w tym języku:

// Kod programu liczącego liczbę <b>π</b> z zadanym odchyleniem maksymalnym z wykorzystaniem wzoru Leibniz-a #define _USE_MATH_DEFINES #include <math.h> #include <stdlib.h> #include <iostream> int main() { double pi = 0; int n = 1; double prec = 0; std::cout<<"Maksymalne odchylenie:"; std::cin>>prec; while(abs(pi - M_PI) > prec){ pi += 4 * (n % 2 == 0? -1.0: 1.0) / (2 * n - 1); printf("%.12f %.12f %i ",pi,abs(pi - M_PI),n); n++; } getchar(); getchar(); return 0; }

Powyższy kod został użyty przeze mnie na stronie Matematyka → Zagadnienia ogólne → Liczba pi i jej wyznaczanie.

Kolorowanie składni programu napisanego w PHP

Poniżej zamieszczam wycinek kodu źródłowego, skryptu który omawiany był na stronie Programowanie → Skrypty PHP → Skrypt klasy tworzącej wykres słupkowy:

<? // Skrypt do tworzenia wykresów słupkowych // Strona domowa: http://obliczeniowo.com.pl/?id=165---skrypt-klasy-tworzacej-wykres-slupkowy header('Content-type: image/png'); class cValue{ public $v; public $color; public $color2; public $color3; public $name; public function __construct($v, $color, $color2, $color3, $name){ $this->v = $v; $this->color = $color; $this->color2 = $color2; $this->color3 = $color3; $this->name = $name; } }

Kolorowanie składni Libre Office BASIC

Przykładowy kod funkcji, którą wcześniej umieściłem na stronie Programowanie → OpenOffice BASIC → Generator liczb losowych z kolorowaniem tła komórek:

Function SetColor(k as double, w as double) Dim document as object Dim dispatcher as object document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") Dim args2(0) as new com.sun.star.beans.PropertyValue args(0).Name = "BackgroundColor" args(0).Value = Int(255 * w / k) * 256 * 256 + Int(255 - 255 * w / k) * 256 dispatcher.executeDispatch(document, ".uno:BackgroundColor","",0,args()) End Function Sub Generator Dim document as object Dim dispatcher as object document = ThisComponent.CurrentController.Frame dispatcher = createUnoService("com.sun.star.frame.DispatchHelper") Dim args(0) as new com.sun.star.beans.PropertyValue args(0).Name = "ToPoint" args(0).Value = "$B$2" dispatcher.executeDispatch(document, ".uno:GoToCell", "", 0, args()) Dim i as integer Dim j as integer For j = 1 To 10 For i = 1 To 10 Dim str as string Dim w as double w = rnd() str = w args(0).Name = "StringName" args(0).Value = str dispatcher.executeDispatch(document, ".uno:EnterString", "", 0, args()) SetColor(1, w) dispatcher.ExecuteDispatch(document, ".uno:GoDown", "" , 0 ,Array()) Next i For i = 1 To 10 dispatcher.ExecuteDispatch(document, ".uno:GoUp", "", 0, Array()) Next i dispatcher.ExecuteDispatch(document, ".uno:GoRight", "", 0, Array()) Next j End Sub

Kolorowanie składni html

Ostatni przykład, który zamieściłem już wcześniej na stronie Programowanie → Skrypty PHP → Prosta przeglądarka plików graficznych:

 
	
		
		Przeglądanie zdjęć w katalogu
		
	

		= count($tab)){
				$index = count($tab) - 1;
			}

			echo("

"); echo("
"); // browser.php - nazwa własna pliku tego skryptu echo("

"); if($index > 0){ echo(" - "); } echo($index +1); if($index < count($tab) - 1){ echo(" - "); } echo("

"); } ?>