It's like being stuck in a eternal notepad hell.
This post has been edited by KYA: 04 December 2008 - 08:51 AM
Posted 04 December 2008 - 08:57 AM
Quote
Quote
Posted 04 December 2008 - 09:01 AM
Posted 04 December 2008 - 07:28 PM
<style>
.keyword{
color: #66f;
}
.comment{
color: #bbb;
}
.str{
color: #0c0;
}
.digit{
color: #f00;
}
.lineNums{
float: left;
background: #eee;
padding: 0px 5px 0px 5px;
border-top: 1px solid #99f;
border-right: 1px solid #99f;
margin: 0px;
}
.codeLines{
display: inline;
margin-left: -3px;
width: 100%;
overflow-x: scroll;
overflow-y: visible;
padding-left: 5px;
border-top: 1px solid #99f;
white-space: nowrap;
}
#sourceCode{
border: 1px solid #99f;
width: 500px;
}
</style>
<script>
var keywords = {
none: {
name: "Code",
words: [],
comments: {
find: [/(?!<)(\'|\")(.*?)(\'|\")/g],
rep: ["$1<span class='str'>[str]$2[str]</span>$3"]
}
},
php: {
name: "PHP",
words: [
'and', 'xor', 'or', '_FILE_', 'exception', '_LINE_', 'array', 'as',
'break', 'case', 'class', 'const', 'continue', 'declare', 'default',
'die', 'do', 'echo', 'else', 'elseif', 'empty', 'enddeclare', 'eval',
'exit', 'extends', 'foreach', 'for', 'function', 'global', 'if',
'include', 'include_once', 'isset', 'list', 'new', 'print', 'require',
'require_once', 'return', 'static', 'switch', 'unset', 'use', 'var',
'while', '_FUNCTION_', '_CLASS_', '_METHOD_', 'final', 'php_user_filter',
'interface', 'implements', 'instanceof', 'public', 'private', 'protected',
'abstract', 'clone', 'try', 'catch', 'throw', 'cfunction', 'old_function',
'this', 'final', '_NAMESPACE_', 'namespace', 'goto', '_DIR_'
],
comments: {
find: [
/(?!<)(\'|\")(.*?)(\'|\")/g,
/(\/\/)+(.*?)(?=<br>)/gi,
/(\/\*)(.*?)(\*\/)/gi
],
rep: [
"$1<span class='str'>[str]$2[str]</span>$3",
"<span class='comment'>[comment]$1$2[comment]</span>",
"<span class='comment'>[comment]$1$2$3[comment]</span>"
]
}
},
java: {
name: "Java",
words: [
'abstract', 'assert', 'boolean', 'break', 'byte', 'case', 'catch', 'char',
'class', 'const', 'continue', 'default', 'do', 'double', 'else', 'enum',
'extends', 'finally', 'final', 'float', 'for', 'goto', 'if', 'implements',
'import', 'instanceof', 'int', 'interface', 'long', 'native', 'new',
'package', 'private', 'protected', 'public', 'return', 'short', 'static',
'strictfp', 'super', 'switch', 'synchronized', 'this', 'throws', 'throws',
'transient', 'try', 'void', 'volatile', 'while'
],
comments: {
find: [
/(?!<)(\'|\")(.*?)(\'|\")/g,
/(\/\/)+(.*?)(?=<br>)/gi,
/(\/\*)(.*?)(\*\/)/gi
],
rep: [
"$1<span class='str'>[str]$2[str]</span>$3",
"<span class='comment'>[comment]$1$2[comment]</span>",
"<span class='comment'>[comment]$1$2$3[comment]</span>"
]
}
},
as2: {
name: "Actionscript 2.0",
words: [
'_root'
],
comments: {
find: [
/(?!<)(\'|\")(.*?)(\'|\")/g,
/(\/\/)+(.*?)(?=<br>)/gi,
/(\/\*)(.*?)(\*\/)/gi
],
rep: [
"$1<span class='str'>[str]$2[str]</span>$3",
"<span class='comment'>[comment]$1$2[comment]</span>",
"<span class='comment'>[comment]$1$2$3[comment]</span>"
]
}
},
cpp: {
name: "C++",
words: [
'asm', 'auto', 'bool', 'break', 'case', 'catch', 'char', 'class', 'cin',
'const_cast', 'const', 'continue', 'cout', 'default', 'delete', 'double',
'do', 'dynamic_cast', 'else', 'endl', 'enum', 'explicit', 'export',
'extern', 'false', 'float', 'for', 'friend', 'goto', 'if', '#include',
'inline', 'int', 'long', 'mutable', 'namespace', 'new', 'operator',
'private', 'protected', 'public', 'register', 'reinterpret_cast',
'return', 'short', 'signed', 'sizeof', 'static_cast', 'static', 'struct',
'switch', 'template', 'this', 'throw', 'true', 'try', 'typedef', 'typeid',
'typename', 'union', 'unsigned', 'using', 'virtual', 'void', 'volatile',
'wchar_t', 'while'
],
comments: {
find: [
/(?!<)(\'|\")(.*?)(\'|\")/g,
/(\/\/)+(.*?)(?=<br>)/gi,
/(\/\*)(.*?)(\*\/)/gi,
/(#include[ |]<)(.*?)(>)/g
],
rep: [
"$1<span class='str'>[str]$2[str]</span>$3",
"<span class='comment'>[comment]$1$2[comment]</span>",
"<span class='comment'>[comment]$1$2$3[comment]</span>",
"$1<span class='str'>$2</span>$3"
]
}
},
c: {
name: "C",
words: [
'auto', 'break', 'case', 'catch', 'char', 'const', 'continue', 'default', 'double', 'do', 'else', 'enum', 'extern', 'float', 'for', 'goto', 'if',
'#include', 'int', 'long', 'register', 'return', 'short', 'signed',
'sizeof', 'static', 'struct', 'switch', 'typedef', 'union', 'unsigned',
'void', 'volatile', 'while'
],
comments: {
find: [
/(?!<)(\'|\")(.*?)(\'|\")/g,
/(\/\/)+(.*?)(?=<br>)/gi,
/(\/\*)(.*?)(\*\/)/gi
],
rep: [
"$1<span class='str'>[str]$2[str]</span>$3",
"<span class='comment'>[comment]$1$2[comment]</span>",
"<span class='comment'>[comment]$1$2$3[comment]</span>"
]
}
},
py: {
name: "Python",
words: [
'class', 'and', 'as', 'assert', 'break', 'continue', 'def', 'del', 'elif',
'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if',
'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise',
'return', 'try', 'while', 'with', 'yield'
],
comments: {
find: [
/(\#)+(.*?)(?=<br>)/gi,
/(\"\"\")(.*?)(\"\"\")/gi,
/(?!<)(\'|\")(.*?)(\'|\")/g
],
rep: [
"<span class=comment>[comment]$1$2[comment]</span>",
"<span class=comment>[comment]$1$2$3[comment]</span>",
"$1<span class='str'>[str]$2[str]</span>$3"
]
}
}
};
function getLines(html){
var totalLines = html.match(/<(.*?)>/g).length;
var op = '<span class="lineNums">';
for(var i=0; i<=totalLines; i++){
if(i == totalLines){
b = '';
}
else{
b = '<br/>';
}
op += (i+1)+'<br/>';
}
op += '</span>';
return op;
}
function stripTags(HTML){
var sHTML = HTML.split("[comment]");
for(var i=1; i<sHTML.length; i+=2){
sHTML[i] = sHTML[i].replace(/<[span|\/span](.*?)[^><]*>/g, "");
}
HTML = sHTML.join('');
sHTML = HTML.split("[str]");
for(var i=1; i<sHTML.length; i+=2){
sHTML[i] = sHTML[i].replace(/<[span|\/span](.*?)[^><]*>/g, "");
}
HTML = sHTML.join('');
return HTML;
}
function doHighlight(obj, lang){
if(lang == ''){
lang = 'none';
}
var HTML = obj.innerHTML;
var lines = getLines(HTML);
for(var i=0; i<keywords[lang]['comments']['find'].length; i++){
var reg = new RegExp(keywords[lang]['comments']['find'][i]);
HTML = HTML.replace(reg, keywords[lang]['comments']['rep'][i]);
}
for(var i=0; i<keywords[lang]['words'].length; i++){
if(keywords[lang]['words'][i] == 'class' || keywords[lang]['words'][i] == 'id'){
var standardFind = "(?!<span )("+keywords[lang]['words'][i]+")(?!=)";
}
else if(keywords[lang]['words'][i] == 'as' || keywords[lang]['words'][i] == 'in' || keywords[lang]['words'][i] == 'is' || keywords[lang]['words'][i] == 'or'){
var standardFind = "(\s)("+keywords[lang]['words'][i]+")(\s)";
}
else if(keywords[lang]['words'][i] == 'or'){
var standardFind = "(?!<span class=\'keyw)("+keywords[lang]['words'][i]+")(?!d\')";
}
else{
var standardFind = "(?!<span )("+keywords[lang]['words'][i]+")";
}
var reg = new RegExp(standardFind, "g");
HTML = HTML.replace(reg, "<span class='keyword'>"+keywords[lang]['words'][i]+"</span>");
}
HTML = HTML.replace(/(\d)/g, "<span class='digit'>$1</span>");
HTML = stripTags(HTML);
var op = "<b>"+keywords[lang]['name']+"</b><br/>"+lines+"<div class='codeLines'>"+HTML+"</div>";
return op;
}
function highlight(){
var tags = document.getElementsByTagName('div');
for(var i=0; i<tags.length; i++){
if(tags[i].name == 'code'){
tags[i].innerHTML = doHighlight(tags[i], tags[i].className);
}
}
return;
}
</script>
<body onload="highlight();">
<div name="code" class="cpp" id="sourceCode">
#include "stdafx.h"<br/><br/>
#include<iostream><br/>
using namespace std;<br/><br/>
class Shape{<br/>
protected:<br/>
int xPos;<br/>
int yPos;<br/>
public:<br/>
virtual double area(void) = 0;<br/>
virtual int* getPos(void){<br/>
int a[] = {xPos, yPos};<br/>
return a;<br/>
}<br/>
virtual void setPos(int x, int y){<br/>
xPos = x;<br/>
yPos = y;<br/>
}<br/>
virtual void move(int toX, int toY){<br/>
xPos += toX;<br/>
yPos += toY;<br/>
}<br/>
};<br/>
<br/>
class Square: public Shape{<br/>
protected:<br/>
int sideLen;<br/>
public:<br/>
Square(void){<br/>
setPos(0, 0);<br/>
}<br/>
Square(int x, int y, int sides){<br/>
setPos(x, y);<br/>
sideLen = sides;<br/>
}<br/>
virtual double area(void){<br/>
return sideLen*sideLen;<br/>
}<br/>
};<br/>
<br/>
class Circle: public Shape{<br/>
protected:<br/>
int radius;<br/>
public:<br/>
Circle(void){<br/>
setPos(0, 0);<br/>
setRadius(0);<br/>
}<br/>
Circle(int x, int y, int rad){<br/>
setPos(x, y);<br/>
setRadius(rad);<br/>
}<br/>
virtual void setRadius(int rad){<br/>
radius = rad;<br/>
}<br/>
virtual int getRadius(void){<br/>
return radius;<br/>
}<br/>
virtual double area(void){<br/>
return 3.14*radius*radius;<br/>
}<br/>
};<br/>
<br/>
class Wheel: public Circle{<br/>
protected:<br/>
int spokes;<br/>
public:<br/>
Wheel(void){<br/>
Circle::Circle();<br/>
setSpokes(0);<br/>
}<br/>
Wheel(int x, int y, int rad, int s){<br/>
Circle::Circle(x, y, rad);<br/>
setSpokes(s);<br/>
}<br/>
virtual void setSpokes(int s){<br/>
spokes = s;<br/>
}<br/>
virtual int getSpokes(void){<br/>
return spokes;<br/>
}<br/>
};<br/>
<br/>
int main(){<br/>
Shape* test = new Square(15, 15, 5);<br/>
Shape* cir = new Circle(15, 15, 2);<br/>
cout << test->getPos()[0] << endl;<br/>
cout << cir->area() << endl;<br/>
}
</div>
<br/>
<div name="code" class="py" id="sourceCode">
import Queue<br/>
import socket<br/>
import threading<br/><br/>
policyTxt = "<?xml version=\"1.0\"?><cross-domain-policy><allow-access-from domain=\"*\" to-ports=\"2727\" /></cross-domain-policy>\0"<br/>
#Thread class :)<br/>
class ClientThread(threading.Thread):<br/>
def run(self):<br/>
while True:<br/>
client = clientPool.get()<br/>
if client != None:<br/>
print 'Received connection:', client[1][0]<br/>
while True:<br/>
message = client[0].recv(1024)<br/>
if message:<br/>
print message<br/>
if message != "<policy-file-request/>\0":<br/>
reply = "ECHO: "+ message<br/>
client[0].send(reply)<br/>
if message == "<policy-file-request/>\0":<br/>
client[0].send(policyTxt)<br/>
if message == "<close-connection/>\0":<br/>
print "Connection closed: ", client[1]<br/>
client[0].close();<br/>
break;<br/><br/>
clientPool = Queue.Queue(0)<br/><br/>
for x in xrange(10):<br/>
ClientThread().start()<br/>
<br/>
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)<br/>
server.bind(('', 2727))<br/>
server.listen(5)<br/>
<br/>
while True:<br/>
clientPool.put(server.accept())
</div>
Posted 05 December 2008 - 05:42 PM
Posted 06 December 2008 - 12:11 AM
skyhawk133, on 3 Dec, 2008 - 07:31 PM, said:
This post has been edited by n8wxs: 06 December 2008 - 12:12 AM
Posted 06 December 2008 - 06:31 AM
Quote
Posted 06 December 2008 - 09:55 AM
