Flex mag meine start condition nicht

Dieses Thema im Forum "Programmieren allgemein" wurde erstellt von marcellus, 28.06.2009.

  1. #1 marcellus, 28.06.2009
    Zuletzt bearbeitet: 28.06.2009
    marcellus

    marcellus Kaiser

    Dabei seit:
    09.05.2007
    Beiträge:
    1.392
    Zustimmungen:
    0
    Da ich auf diesen thread keine Antworten bekannt hab hab ich mich etwas weiter in flex reingetaucht.

    Jetzt hab ich ein Problem, dass ich mir schwer erklären kann, ich will etwas in der art matchen:

    Code:
    #FIG (?<version>\d.\d).*?\n?
    (?<orientation>Landscape|Portrait)
    Wobei ich die Abfolge mit start conditions festleg. Nur ich schaffs nicht in der 2. Zeile die startcondition einzuschalten.

    Ich teste die Programme mit:
    Code:
    #FIG 2.2 blubb
    Landscape
    Das Passt nicht:

    Code:
     1         float version;
     2 
     3 %s      version_float
     4 %s      orientation
     5 
     6 DIGIT   [0-9]
     7 CHAR    [a-z|A-Z]
     8 FLOAT   {DIGIT}.{DIGIT}
     9 
    10 VERSION "#FIG "
    11 
    12 %%
    13 
    14 {VERSION}                       {
    15                                         BEGIN(version_float);
    16                                 }
    17 <version_float>FLOAT            {
    18                                         version=atof(yytext);
    19                                         printf("got version nr \"%f\"\n", version);
    20                                         BEGIN(orientation);
    21                                 }
    22 <orientation>"Landscape"        {
    23                                         printf("orientation is \"%s\"\n", yytext);
    24                                 }
    25 
    26 {FLOAT}+                { printf("read float  :\"%s\"", yytext ); }
    27 {DIGIT}+                { printf("read digit  :\"%s\"", yytext ); }
    28 {CHAR}+                 { printf(" read char \"%s\"", yytext ); }
    29 
    30 %%
    31 
    32 main()
    33         {
    34                 yylex();
    35         }
    (ausgabe)
    und das schon:

    Code:
     1         float version;
     2 
     3 %s      version_float
     4 %s      orientation
     5 
     6 DIGIT   [0-9]
     7 CHAR    [a-z|A-Z]
     8 FLOAT   {DIGIT}.{DIGIT}
     9 
    10 VERSION "#FIG "
    11 
    12 %%
    13 
    14 {VERSION}                       {
    15                                         BEGIN(version_float);
    16                                 }
    17 <version_float>FLOAT            {
    18                                         version=atof(yytext);
    19                                         printf("got version nr \"%f\"\n", version);
    20                                         BEGIN(orientation);
    21                                 }
    22 "Landscape"                {
    23                                         printf("orientation is \"%s\"\n", yytext);
    24                                 }
    25 
    26 {FLOAT}+                { printf("read float  :\"%s\"", yytext ); }
    27 {DIGIT}+                { printf("read digit  :\"%s\"", yytext ); }
    28 {CHAR}+                 { printf(" read char \"%s\"", yytext ); }
    29 
    30 %%
    31 
    32 main()
    33         {
    34                 yylex();
    35         }
    (augabe)
    (diff)
    Code:
    22c22
    < "Landscape" 			{
    ---
    > <orientation>"Landscape" 	{
    Die 2 Beispiele haben nur den Sinn, dass man sieht, dass die Startcondition nicht greift. Aber ich hab nix gefunden wie ich das ändern kann.

    Ich bin für alle Vorschläge offen

    Tia
    .
    .
    .
    EDIT (autom. Beitragszusammenführung) :
    .

    Ich hab den fehler gefunden, aus

    Code:
    17 <version_float>FLOAT            {
    muss man nur

    Code:
    17 <version_float>{FLOAT}         {
    machen, weils auf "FLOAT" gepasst hat und nicht auf "\d.\d".
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema:

Flex mag meine start condition nicht

Die Seite wird geladen...

Flex mag meine start condition nicht - Ähnliche Themen

  1. Apache Flex 4.10 unterstützt Linux

    Apache Flex 4.10 unterstützt Linux: Das Apache-Flex-Projekt hat das ehemals von Adobe entwickelte Framework für Rich Internet Applications (RIAs) in der Version 4.10 veröffentlicht....
  2. Artikel: »Apache Flex hat großes Potential«

    Artikel: »Apache Flex hat großes Potential«: Gabe Harbs, erfahrener Adobe-Experte und Mitglied der Apache Flex-Gemeinschaft, gibt Einblicke in aktuelle Entwicklungen und zukünftige Richtungen...
  3. Apache Flex wird zum Top-Level-Projekt

    Apache Flex wird zum Top-Level-Projekt: Apache Flex, ehemals Adobe Flex, wurde gleichzeitig mit der Freigabe der Version 4.9 ein offizielles Apache-Projekt. Die Entscheidung, Flex an die...
  4. FlexNet License Server Manager 11.9.1 Stack Overflow

    FlexNet License Server Manager 11.9.1 Stack Overflow: FlexNet License Server Manager versions 11.9.1 and below suffer from a stack overflow vulnerability in lmgrd. Proof of concept included....
  5. Kein Zirkumflex Symbol (^) in KDE Programmen

    Kein Zirkumflex Symbol (^) in KDE Programmen: Hallo, wie der Titel schon sagt, ich habe in allen KDE Programmen kein Zirkumflex Symbol ^ â ê etc. Im Firefox oder Opera funktioniert es ohne...