Asscalc Commands: Unterschied zwischen den Versionen
Zeile 1: | Zeile 1: | ||
+ | Commandos in ASSCalc können als feste Funktionen angesehen werden. Sie können für verschiedene Zwecke eingesetzt werden, haben aber auch gewisse Macken, welche man kennen sollte, aber seht selbst ;) Grundsätzlich beziehen sich diese Funktionen auf die "lines", d.h. sie sind dafür ausgelegt im P Layer benutzt zu werden, im Header funktionieren sie meißt falsch oder eher gar nicht. | ||
+ | |||
| ''lines'' ''' expr '\n' ''' { print_tval_of( $2.value );/*fprintf( foutt, "%.12g", $2.value) */} | | ''lines'' ''' expr '\n' ''' { print_tval_of( $2.value );/*fprintf( foutt, "%.12g", $2.value) */} | ||
+ | |||
+ | Die Grundfunktion, wie eine Variable in Calc ausgegeben wird. Das lines bezieht sich auf den Teil in dem die Funktion steht (nicht im Header). expr ist die Bezeichnung für Variable. Hier kann alles stehen, aber man sollte Zahlen vermeiden. Sonderzeichen und nicht englischsprachige Zeichen sind Tabu. \n bedeutet, dass immer eine weitere Leerzeile benötigt wird. Diese kann auch am Scriptende stehen, aber muss vorhanden sein, sonst hagelt es nur Fehler. Wichtig ist auch zu wissen, dass Variablen nur Zahlen sein können und diese bei der Ausgabe um den Faktor 1000 multipliziert werden, da ASSCalc in milisekunden rechnet. Für eine modifizierte Ausgabe, einfach unten weiter lesen (pos of, hex of etc.) | ||
+ | |||
+ | '''<u>Beispiel:</u> | ||
+ | |||
+ | variablenname | ||
+ | ''' | ||
+ | | ''lines'' ''' INSERT IDENTIFIER '\n' ''' { print_identifier( $3.name ); } | ||
+ | |||
+ | Fügt Daten aus dem Grundscript in die out.ass ein. Bisher wird dies für Farben und Text/Zeichen/Silbe benötigt. Diese Daten können nicht verarbeitet werden, sondern nur direkt eingefügt werden, sozusagen CopyPasta ;) | ||
+ | |||
+ | '''<u>Beispiel:</u> | ||
+ | |||
+ | insert text | ||
+ | fügt die aktuelle Silbe oder Text ein, je nach Berechnungsart | ||
+ | |||
+ | insert text_all | ||
+ | fügt die ganze Line als Text ein | ||
+ | |||
+ | insert text_copy | ||
+ | fügt die ganze Line aus dem Originalscript ein, incl. \ass Tags und sonstigem Code welcher in der Line steht | ||
+ | |||
+ | insert stylecolor1 | ||
+ | fügt die Primary Farbe des gelockten Styles ein, gilt auch für die Secondary, Border und Shadowfarbe | ||
+ | |||
+ | insert stylecolor1.stylename | ||
+ | fügt die Primary Farbe vom Style "stylename" ein, gilt auch für Secondary, Boder und Shadowfarbe | ||
+ | |||
+ | insert @stylecolor1 | ||
+ | nicht ganz schlüssig, eigentlich für die Verbindung mit Farnbtransforms und Colorchanges gedacht, aber funktionierte noch nie.... | ||
+ | ''' | ||
| ''lines'' ''' TEXTINDEX STORE '(' expr ')' '\n' ''' { TextindexStore( $5.value ); } | | ''lines'' ''' TEXTINDEX STORE '(' expr ')' '\n' ''' { TextindexStore( $5.value ); } | ||
+ | |||
+ | Kann die aktuelle Silbe/Zeichen im aktuellen P-Layer Durchlauf in eine Variable schreiben. TEXTINDEX funktioniert hierbei als festes String Array in welches 255 Plätze besitzt. | ||
+ | |||
+ | '''<u>Beispiel:</u> | ||
+ | |||
+ | TEXTINDEX STORE (1) | ||
+ | ''' | ||
| ''lines'' ''' TEXTINDEX GET '(' expr ')' '\n' ''' { TextindexGet( $5.value ); } | | ''lines'' ''' TEXTINDEX GET '(' expr ')' '\n' ''' { TextindexGet( $5.value ); } | ||
+ | |||
+ | Fügt den gespiechterten TEXT aus TEXTINDEX STORE () in die out.ass ein. Ist wie "insert text" zu behandeln und kann keine weitere modifikation oder umspeicherung in einen anderen Slot vorgenommen werden. | ||
+ | |||
+ | '''<u>Beispiel:</u> | ||
+ | |||
+ | TEXTINDEX GET (1) | ||
+ | ''' | ||
+ | |||
+ | | ''lines'' ''' RANDOMINS STRING expr '\n' ''' { rand_ins( $3.name, $4.value ); } | ||
+ | |||
+ | | ''lines'' ''' TEXTFIND IDENTIFIER '\n' ''' { if( !textfind_identifier( $3.name ) )return EXIT_SUCCESS; } | ||
+ | | ''lines'' ''' '!' TEXTFIND IDENTIFIER '\n' ''' { if( textfind_identifier( $4.name ) )return EXIT_SUCCESS; } | ||
+ | |||
+ | | ''lines'' ''' STRING '\n' ''' { fprintf( foutt, "%s", $2.name) } | ||
| ''lines'' ''' PRINTS STRING '\n' ''' { printf( "%s", $3.name ); } | | ''lines'' ''' PRINTS STRING '\n' ''' { printf( "%s", $3.name ); } | ||
Zeile 14: | Zeile 68: | ||
| ''lines'' ''' LOWKILL '(' expr ',' expr ')' '\n' ''' { if( $4.value<$6.value ){printf( "lowkill yes %f<%f\n",$4.value,$6.value); | | ''lines'' ''' LOWKILL '(' expr ',' expr ')' '\n' ''' { if( $4.value<$6.value ){printf( "lowkill yes %f<%f\n",$4.value,$6.value); | ||
− | + | return EXIT_SUCCESS;}else printf( "lowkill no %f>=%f\n",$4.value,$6.value); } | |
| ''lines'' ''' IDENTIFIER '=' expr '\n' ''' { set_identifier( $2, $4.value ); } | | ''lines'' ''' IDENTIFIER '=' expr '\n' ''' { set_identifier( $2, $4.value ); } | ||
Zeile 28: | Zeile 82: | ||
| ''lines'' ''' COLOROF expr '\n' ''' { print_color_of( $3.value ); } | | ''lines'' ''' COLOROF expr '\n' ''' { print_color_of( $3.value ); } | ||
| ''lines'' ''' TVALOF expr '\n' ''' { print_tval_of( $3.value ); } | | ''lines'' ''' TVALOF expr '\n' ''' { print_tval_of( $3.value ); } | ||
− | |||
− | |||
− | |||
− | |||
| ''lines'' ''' LOOPFILE STRING expr '\n' ''' { loop_file( $3.name, $4.value, 1 ); } | | ''lines'' ''' LOOPFILE STRING expr '\n' ''' { loop_file( $3.name, $4.value, 1 ); } | ||
| ''lines'' ''' LOOPFILE2 STRING '(' expr ',' expr ')' '\n' ''' { loop_file( $3.name, $5.value, $7.value ); } | | ''lines'' ''' LOOPFILE2 STRING '(' expr ',' expr ')' '\n' ''' { loop_file( $3.name, $5.value, $7.value ); } | ||
− | |||
− | |||
− | |||
− | |||
| ''lines'' ''' EXIT '\n' ''' { return EXIT_SUCCESS; } | | ''lines'' ''' EXIT '\n' ''' { return EXIT_SUCCESS; } | ||
| '''/* empty */ ''' | | '''/* empty */ ''' | ||
| '''error '\n' ''' { printf("\n error \n"); yyerrok; } | | '''error '\n' ''' { printf("\n error \n"); yyerrok; } |
Version vom 23. Januar 2012, 12:11 Uhr
Commandos in ASSCalc können als feste Funktionen angesehen werden. Sie können für verschiedene Zwecke eingesetzt werden, haben aber auch gewisse Macken, welche man kennen sollte, aber seht selbst ;) Grundsätzlich beziehen sich diese Funktionen auf die "lines", d.h. sie sind dafür ausgelegt im P Layer benutzt zu werden, im Header funktionieren sie meißt falsch oder eher gar nicht.
| lines expr '\n' { print_tval_of( $2.value );/*fprintf( foutt, "%.12g", $2.value) */}
Die Grundfunktion, wie eine Variable in Calc ausgegeben wird. Das lines bezieht sich auf den Teil in dem die Funktion steht (nicht im Header). expr ist die Bezeichnung für Variable. Hier kann alles stehen, aber man sollte Zahlen vermeiden. Sonderzeichen und nicht englischsprachige Zeichen sind Tabu. \n bedeutet, dass immer eine weitere Leerzeile benötigt wird. Diese kann auch am Scriptende stehen, aber muss vorhanden sein, sonst hagelt es nur Fehler. Wichtig ist auch zu wissen, dass Variablen nur Zahlen sein können und diese bei der Ausgabe um den Faktor 1000 multipliziert werden, da ASSCalc in milisekunden rechnet. Für eine modifizierte Ausgabe, einfach unten weiter lesen (pos of, hex of etc.)
Beispiel:
variablenname
| lines INSERT IDENTIFIER '\n' { print_identifier( $3.name ); }
Fügt Daten aus dem Grundscript in die out.ass ein. Bisher wird dies für Farben und Text/Zeichen/Silbe benötigt. Diese Daten können nicht verarbeitet werden, sondern nur direkt eingefügt werden, sozusagen CopyPasta ;)
Beispiel:
insert text fügt die aktuelle Silbe oder Text ein, je nach Berechnungsart
insert text_all fügt die ganze Line als Text ein
insert text_copy fügt die ganze Line aus dem Originalscript ein, incl. \ass Tags und sonstigem Code welcher in der Line steht
insert stylecolor1 fügt die Primary Farbe des gelockten Styles ein, gilt auch für die Secondary, Border und Shadowfarbe
insert stylecolor1.stylename fügt die Primary Farbe vom Style "stylename" ein, gilt auch für Secondary, Boder und Shadowfarbe
insert @stylecolor1 nicht ganz schlüssig, eigentlich für die Verbindung mit Farnbtransforms und Colorchanges gedacht, aber funktionierte noch nie....
| lines TEXTINDEX STORE '(' expr ')' '\n' { TextindexStore( $5.value ); }
Kann die aktuelle Silbe/Zeichen im aktuellen P-Layer Durchlauf in eine Variable schreiben. TEXTINDEX funktioniert hierbei als festes String Array in welches 255 Plätze besitzt.
Beispiel:
TEXTINDEX STORE (1)
| lines TEXTINDEX GET '(' expr ')' '\n' { TextindexGet( $5.value ); }
Fügt den gespiechterten TEXT aus TEXTINDEX STORE () in die out.ass ein. Ist wie "insert text" zu behandeln und kann keine weitere modifikation oder umspeicherung in einen anderen Slot vorgenommen werden.
Beispiel:
TEXTINDEX GET (1)
| lines RANDOMINS STRING expr '\n' { rand_ins( $3.name, $4.value ); }
| lines TEXTFIND IDENTIFIER '\n' { if( !textfind_identifier( $3.name ) )return EXIT_SUCCESS; } | lines '!' TEXTFIND IDENTIFIER '\n' { if( textfind_identifier( $4.name ) )return EXIT_SUCCESS; }
| lines STRING '\n' { fprintf( foutt, "%s", $2.name) }
| lines PRINTS STRING '\n' { printf( "%s", $3.name ); } | lines PRINTV expr '\n' { printf( "%f", $3.value ); }
| lines COLORING_OFF '(' expr ',' expr ')' '\n' { ColoringOff( $4.value, $6.value ); }
| lines BORDERLINE '(' expr ',' expr ')' '\n' { PrintBorderline( $4.value, $6.value ); }
| lines KILLTHISLOOP '\n' { KillThisLoop(); }
| lines LOWKILL '(' expr ',' expr ')' '\n' { if( $4.value<$6.value ){printf( "lowkill yes %f<%f\n",$4.value,$6.value); return EXIT_SUCCESS;}else printf( "lowkill no %f>=%f\n",$4.value,$6.value); }
| lines IDENTIFIER '=' expr '\n' { set_identifier( $2, $4.value ); } | lines IDENTIFIER '[' expr ']' '=' expr '\n' { set_identifier_arr( $2, $7.value, $4.value ); }
| lines FONTMATCHUSE STRING '\n' { fontmatchuse( $3.name ); } | lines SETFLAG STRING '\n' { set_flag( $3.name ); }
| lines TIMEOF expr '\n' { print_time_of( $3.value ); } | lines POSOF expr '\n' { print_pos_of( $3.value ); } | lines HEXOF expr '\n' { print_hex_of( $3.value ); } | lines CHAROF expr '\n' { print_char_of( $3.value ); } | lines COLOROF expr '\n' { print_color_of( $3.value ); } | lines TVALOF expr '\n' { print_tval_of( $3.value ); }
| lines LOOPFILE STRING expr '\n' { loop_file( $3.name, $4.value, 1 ); } | lines LOOPFILE2 STRING '(' expr ',' expr ')' '\n' { loop_file( $3.name, $5.value, $7.value ); }
| lines EXIT '\n' { return EXIT_SUCCESS; }
| /* empty */ | error '\n' { printf("\n error \n"); yyerrok; }