Avatar billede mathiash Nybegynder
01. januar 2006 - 23:17 Der er 10 kommentarer og
1 løsning

Meget simpel scripting

Hej!

Jeg er igang med at programmere en irc bot (Internet Relay Chat)

Jeg vil gerne have at der er mulighed for at scripte den.

Jeg har tænkt mig at når der sker en event fx. OnStartup, OnMessage, OnJoin osv. kalder den en funktion der analyserer script filen og finder linjer der skal kaldes ved den specifikerede event, det har jeg så lavet nu.

En linje kunne f.eks. se sådan her ud: OnMessage if ( %nick% , == , Mini^ , irc ( JOIN #Hej ) )

Altså, når der er skrevet en besked, hvis nick == Mini^ udfør irc kommando: JOIN #Hej

Nu kommer mit spørgsmål så, hvordan kan jeg parse en funktion?

Jeg har prøvet med sscanf(cmd1, "%s ( %s", &cmd_name, &cmd_params);

Men den returnerer blot if og ╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠╠
dvs. intet i cmd_params.

Jeg har kigget lidt på tutorials, artikler og lign. om at skrive et script sprog hvor de bruger bison osv. Og det syntes jeg er lidt for stort, da jeg godt tror det kan lade sig gøre på den her måde.

Nogle eksperter der kan hjælpe? Og evt. har forslag til hvordan det kunne gøres bedre?

Med venlig hilsen
Mathias Hansen
Avatar billede bertelbrander Novice
01. januar 2006 - 23:37 #1
Jeg er bange for at der ikke er nogen let metode.
sscanf er for primitiv.
Du kan overveje strtok, eller lave din egen splitter i stil med:
http://home20.inet.tele.dk/midgaard/tipc20050113.html

Du kan også lave en parser som den i:
http://exp.dk/spm/674865
Avatar billede mathiash Nybegynder
01. januar 2006 - 23:56 #2
Tak for de gode råd, jeg arbejder bare videre så :)

Læg et svar :)
Avatar billede mathiash Nybegynder
02. januar 2006 - 00:00 #3
Findes der ikke scripting engines der evt. kan implenteres i mit projekt? Jeg har prøvet at søge sourceforget.net men kan ikke rigtigt finde noget.
Avatar billede bertelbrander Novice
02. januar 2006 - 00:06 #4
Man kunne overveje denne:
http://boost.org/libs/spirit/index.html

Jeg har ikke prøvet den.
Avatar billede bertelbrander Novice
02. januar 2006 - 00:11 #5
Man kunne også kikke på:
http://boost.org/libs/tokenizer/index.html
Avatar billede mathiash Nybegynder
02. januar 2006 - 00:16 #6
Det var ikke så let som jeg havde troet, jeg kigger lige på det.

P.S. Nårja, undskyld det er rigtigt du samler ikke på points, men tusind tak alligevel :)
Avatar billede mxs Nybegynder
02. januar 2006 - 00:33 #7
Du kunne også tage et kig på den her, http://hax.sigsys.dk/bot/index.php?p=kode :) Hvad bruger du har socket lib? Eller skriver du det selv?
Avatar billede mxs Nybegynder
02. januar 2006 - 00:34 #8
Ups. Den er lidt meget buggy det jeg har smidt op der :s Øv øv. Hmm. Men hvis du vil se den kan du da bare skrive. Så skal jeg nok lige parse det rigtige.
Avatar billede mathiash Nybegynder
02. januar 2006 - 00:45 #9
mxs -> Det er sådanset kun scripting jeg har problemer med, resten kan jeg fint klare selv :)
Avatar billede mxs Nybegynder
02. januar 2006 - 01:47 #10
mathiash -> Nu spørger jeg af ren interesse :) Er jo også selv ved at lave en.
Avatar billede mxs Nybegynder
02. januar 2006 - 01:48 #11
Oh undskyld. Jeg troede du havde problemer med at lave en split funktion.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester