UBB code-tag: PowerShell

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
De code-tag werkt voor: asp | c | c++,cpp | c#,csharp | cobol | css | delphi | fortran | html | java | js,javascript | jsf | jsp | pascal | perl | php | python | sql | vb | vb.net | vbs,vbscript | xml | xpath.

Is er mogelijkheid om in de toekomst PowerShell toe te voegen? Ik hoor de hoon vanuit nix-wereld al opstijgen als ik het voorstel, maar ik denk heus dat PS aan belang gaat winnen en zelf begin ik hier en daar al kleine scriptjes aan gebruikers aan te bieden als oplossing voor een probleem. Dat gaat zonder syntax highlighting ook, natuurlijk, maar mét is het toch net iets aangenamer lezen.

Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Ik denk dat je hier ook wat redenen kan vinden wat er eventueel voor nodig is en waar de devvers aan zitten te denken (qua roadmap) :)

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Lexfiles schrijven is best saai, weet ik uit ervaring. :+
[feat] P&W - Code highlighting voor SQL

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
In welk formaat moet je die lexer hebben? Ik heb hier een lexer in XML voor Notepad++. Kan je daar wat mee?

[ Voor 4% gewijzigd door YellowOnline op 29-07-2010 18:48 ]


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

moto-moi schreef op vrijdag 15 januari 2010 @ 20:17:
een lexer file die ingelezen kan worden door flex :)
VV Sorry hoor :( :*

[ Voor 29% gewijzigd door BtM909 op 30-07-2010 16:02 ]

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
BtM909 schreef op donderdag 29 juli 2010 @ 18:59:
Het zou een een lexer file moeten zijn, die ingelezen kan worden door flex :)
Dat is een copy/paste van moto-moi's post in dat andere topic :p Ik had het al gelezen maar die artikels zijn niet echt geweldig duidelijk inzake het verwachtte formaat. Er wordt zowel over XML gesproken als over C. Ik wil wel helpen, maar 't is me even niet duidelijk wat voor input verwacht wordt.

Iets als dit?

C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
%{
#include "y.tab.h"
%}
 
digit         [0-9]
letter        [a-zA-Z]
 
%%
"+"                  { return PLUS;       }
"-"                  { return MINUS;      }
"*"                  { return TIMES;      }
"/"                  { return SLASH;      }
"("                  { return LPAREN;     }
")"                  { return RPAREN;     }
";"                  { return SEMICOLON;  }
","                  { return COMMA;      }
"."                  { return PERIOD;     }
":="                 { return BECOMES;    }
"="                  { return EQL;        }
"<>"                 { return NEQ;        }
"<"                  { return LSS;        }
">"                  { return GTR;        }
"<="                 { return LEQ;        }
">="                 { return GEQ;        }
"begin"              { return BEGINSYM;   }
"call"               { return CALLSYM;    }
"const"              { return CONSTSYM;   }
"do"                 { return DOSYM;      }
"end"                { return ENDSYM;     }
"if"                 { return IFSYM;      }
"odd"                { return ODDSYM;     }
"procedure"          { return PROCSYM;    }
"then"               { return THENSYM;    }
"var"                { return VARSYM;     }
"while"              { return WHILESYM;   }
{letter}({letter}|{digit})* {
                       yylval.id = (char *)strdup(yytext);
                       return IDENT;      }
{digit}+             { yylval.num = atoi(yytext);
                       return NUMBER;     }
[ \t\n\r]            /* skip whitespace */
.                    { printf("Unknown character [%c]\n",yytext[0]);
                       return UNKNOWN;    }
%%
 
int yywrap(void){return 1;}

[ Voor 59% gewijzigd door YellowOnline op 29-07-2010 19:16 ]


Acties:
  • 0 Henk 'm!

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

BtM909 schreef op donderdag 29 juli 2010 @ 18:37:
Ik denk dat je hier ook wat redenen kan vinden wat er eventueel voor nodig is en waar de devvers aan zitten te denken (qua roadmap) :)
Nouja, het probleem wat we daar hadden, dat die lexer weigerde te compileren, is voor zover ik weet inmiddels voorbij. Ik ken alleen totaal geen powershell, dus ik zal ff moeten kijken met wat online voorbeeldjes of de parser die YellowOnline hier neergooit voldoende is :)

God, root, what is difference? | Talga Vassternich | IBM zuigt


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Die is in elk geval wel in hetzelfde formaat waarin ik destijds dat SQL-gedrocht gemaakt heb. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Misschien is het dan mogelijk een meer generieke shell-script parser te maken ipv alleen powershell ? 2 vliegen enzo...

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
moto-moi schreef op donderdag 29 juli 2010 @ 19:59:
[...]

Nouja, het probleem wat we daar hadden, dat die lexer weigerde te compileren, is voor zover ik weet inmiddels voorbij. Ik ken alleen totaal geen powershell, dus ik zal ff moeten kijken met wat online voorbeeldjes of de parser die YellowOnline hier neergooit voldoende is :)
Ho, dat was geen PowerShell, het ging me over het formaat :) Als het formaat klopt kan ik mij binnenkort zelf wel bezighouden met er zo een te proberen maken voor PS.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

u_nix_we_all schreef op donderdag 29 juli 2010 @ 20:11:
Misschien is het dan mogelijk een meer generieke shell-script parser te maken ipv alleen powershell ? 2 vliegen enzo...
Ik zou toch niet graag batch en bash door dezelfde parser willen halen. Hoewel... Zo rampzalig fout zal het ook weer niet gaan. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
Oh, ik dacht dat powershell juist meer op bash leek dan op dos batch. Maar ik kan me goed vergissen, ik weet niet hoe veel het verschilt eigenlijk. :>

Edit: Even gekeken, en ik zit er flink naast, dit lijkt er helemaal niet op :$

[ Voor 21% gewijzigd door u_nix_we_all op 29-07-2010 20:37 ]

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
NMe schreef op donderdag 29 juli 2010 @ 20:29:
[...]

Ik zou toch niet graag batch en bash door dezelfde parser willen halen. Hoewel... Zo rampzalig fout zal het ook weer niet gaan. :P
Bash in een PS parser zou nog lukken, maar omgekeerd.... mmm... nee :)

't Is te zeggen: er bestaat een alias voor de meeste commando's van bash in PS. De syntax is natuurlijk wel helemaal anders.

Een illustratie voor wie niet met PS vertrouwd is: het commando Get-ChildItem heeft als aliassen bv. gci, dir en ls. Het commando Get-Help kan zowel via help als via man opgeroepen worden.

[ Voor 20% gewijzigd door YellowOnline op 29-07-2010 20:43 ]


Acties:
  • 0 Henk 'm!

  • u_nix_we_all
  • Registratie: Augustus 2002
  • Niet online
In dat geval zou ik zeggen: begin met een bash parser, dan ben al je een flink eind op weg met je PS parser :+

You don't need a parachute to go skydiving. You need a parachute to go skydiving twice.


Acties:
  • 0 Henk 'm!

  • moto-moi
  • Registratie: Juli 2001
  • Laatst online: 09-06-2011

moto-moi

Ja, ik haat jou ook :w

YellowOnline schreef op donderdag 29 juli 2010 @ 20:27:
Ho, dat was geen PowerShell, het ging me over het formaat :)
Oh, ok :P
Als het formaat klopt kan ik mij binnenkort zelf wel bezighouden met er zo een te proberen maken voor PS.
Dit is het simpelste voorbeeld dat ik zo 1-2-3 heb, ik wil je er wel op wijzen dat de licentie die je eraan gaat hangen wel moet toestaan dat wij dat ding gebruiken, liefst iets als hieronder gebruikt wordt, BSD, MIT, dat soort. Succes met het maken van zo'n ding ;)
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
/*
    lexer_java.l
    (c) copyright Sylvester Hesp, 2002-2004

    The contents of this file can be used freely, as long as this
    copyright notice is put unchanged in every file where my code
    appears
*/

%option noyywrap prefix="java"

%{
    #include "lexer.h"
    #include "html.h"
%}

ws      [ \t]*
dig     [0-9]
octdig      [0-7]
hexdig      [0-9A-Fa-f]
ident       [A-Za-z_$][0-9A-Za-z_$]*
illegal     [0-9]+[A-Za-z_$][0-9A-Za-z_$]*
long        [Ll]
double      [Dd]
float       [Ff]
exp     [Ee]
binexp      [Pp]
hex     [Xx]
int     [+-]?(0|[1-9]{dig}*)({long}|{exp}[+-]?{dig}+)?
float1      [+-]?((0|[1-9]{dig}*)\.{dig}*|\.{dig}+)({exp}[+-]?{dig}+)?({double}|{float})?
float2      [+-]?(0|[1-9]{dig}*)({exp}[+-]?{dig}+)?({double}|{float})
hexnum      [+-]?0{hex}{hexdig}+{long}?
hexfloat    [+-]?0{hex}({hexdig}+(\.{hexdig}*)?|\.{hexdig}+){binexp}[+-]?{dig}+({double}|{float})?
octnum      [+-]?0{octdig}+{long}?
number      {int}|{float1}|{float2}|{hexfloat}|{hexnum}|{octnum}

rest        [^A-Za-z_$0-9/*"'+-]+

keywords1   abstract|assert|default|if|private|this|boolean|do|implements|protected|throw
keywords2   break|double|import|public|throws|byte|else|enum|instanceof|return|transient
keywords3   case|extends|int|short|try|catch|final|interface|static|void|char|finally|long
keywords4   strictfp|volatile|class|float|native|super|while|const|for|new|switch|continue
keywords5   goto|package|synchronized|null|true|false

keyword     {keywords1}|{keywords2}|{keywords3}|{keywords4}|{keywords5}

%%

"/*"        eatuntil (this, "/*", "*/", TOKEN_COMMENT);

\/\/.*      {
            token (TOKEN_COMMENT, YYText (), 0, 1);
        }

\"      eatstring (this, '"', FLAG_ESCAPE_BACKSLASH, TOKEN_STRING);
'       eatstring (this, '\'', FLAG_ESCAPE_BACKSLASH, TOKEN_STRING);

{number}    {
            token (TOKEN_NUMBER, YYText (), 0, 1);
        }

{illegal}   {
            token (TOKEN_ERROR, YYText (), 0, 1);
        }

{keyword}{ws}\( {
            int len = strcspn (YYText (), " (");
            token (TOKEN_KEYWORD, YYText (), len, 1);
            yyless (len);
        }

{keyword}   {
            token (TOKEN_KEYWORD, YYText (), 0, 1);
        }

{ident}{ws}\(   {
            int len = strcspn (YYText (), " (");
            token (TOKEN_METHOD, YYText (), len, 1);
            yyless (len);
        }

{ident}     {
            token (TOKEN_IDENT, YYText (), 0, 1);
        }

{rest}      {
            token (TOKEN_NONE, YYText (), 0, 1);
        }

.|\n        {
            token (TOKEN_NONE, YYText (), 0, 1);
        }

%%

REGISTER_LEXER ("java");

[ Voor 0% gewijzigd door crisp op 05-08-2011 22:02 ]

God, root, what is difference? | Talga Vassternich | IBM zuigt


Acties:
  • 0 Henk 'm!

  • BtM909
  • Registratie: Juni 2000
  • Niet online

BtM909

Watch out Guys...

Hebben we niet eens een Lexer parser / highlighter? :/


:+

Ace of Base vs Charli XCX - All That She Boom Claps (RMT) | Clean Bandit vs Galantis - I'd Rather Be You (RMT)
You've moved up on my notch-list. You have 1 notch
I have a black belt in Kung Flu.


Acties:
  • 0 Henk 'm!

  • YellowOnline
  • Registratie: Januari 2005
  • Laatst online: 28-03-2023

YellowOnline

BEATI PAVPERES SPIRITV

Topicstarter
Misschien een fantasietje, maar toch:

Ik bedenk per ongeluk nog een andere mogelijkheid door net wat code op Pastebin te gooien: zij ondersteunen ook embedding (http://pastebin.com/embed.php?i=SrhdN9px). Ik weet niet in hoeverre het mogelijk is anders dit te ondersteunen naar analogie met bv. de embedding van YouTube (even aan de technische verschillen voorbijgaand; PB gebruikt JS) - aldus kan men nagenoeg elke code op T.net posten, de lexer lenende van Pastebin.

Quid?

[ Voor 13% gewijzigd door YellowOnline op 19-08-2010 00:01 ]


  • crisp
  • Registratie: Februari 2000
  • Laatst online: 12:40

crisp

Devver

Pixelated

Externe JS embedden == nono. In de eerste plaats wil ik daarvoor geen javascript-afhankelijkheid hebben en hoort de code gewoon integraal in de content te staan, en in de tweede plaats is het een security-risk.

Als iemand gewoon een lexer kan maken hiervoor dan kunnen we dat zo implementeren in onze eigen highlighter.

Intentionally left blank

Pagina: 1