C-kielen rakenteiden tunnistus koneellisesti

ckoodaaja

C-kielen rakenteiden tunnistus koneellisesti

Esim. mc:n (Midnight Commander, linuxissa) integroitu editori osaa näyttää c -kielisten rakenteiden (ainakin .c ja .h -tiedostot) eri osat eri väreillä.

Jotta tuo on mahdollista, mc:n täytyy siis ensin tunnistaa eri osat.

Löytyykö tuohon valmista koodia jostakin ?

4

408

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • mc on GPLlää

      apt-get source mc
      less mc-*/syntax/c.syntax
      less mc-*/edit/syntax.c

    • _Jepu_

      Kyllä tuohon löytyy valmista koodia. Kääntäjänkin pitää osata tunnistaa koodin rakenne, että se voi kääntää sen konekieliseksi.

      Tätä sanotaan koodin jäsentämiseksi (parsing).

      Mitäs Google kertoo?

      Google kertoo, että joku on ollut ahkera:

      http://manju.cs.berkeley.edu/cil/

      Voit itsekin kokeilla hakea joko sanalla parsing (tai parser) tai erityisesti "syntax highlighting", jos koodin väritys riittää, niin löydät kaikenlaisia ratkaisuja. Lisätermeiksi muut vaatimuksesi tai mahdolliset kielet yms. yms.

      Parserin kirjoittaminen itse on aika vaikea urakka, jos ei tunne teoriaa. Käytä valmiita työkaluja.

    • Nero Burner

      kehitysympäristössä syntaksin korostus on ihan must juttu, mutta ennakoiva koodin syöttö sensijaan yleensä pahasti rassaa ohjelmointimukavuutta kireällä ennakointiasetuksella etenkin perin pienillä rosessoritehoilla ja melkeimpä ylikuormitetuilla keskusmuisteilla ja kymmensoemijärjestelmällä, jossa yksi sormi näppäilee ja yhdeksän on vaan tiellä näppältynä pelaillessa.

    • ckoodaaja

      Ratkaisu: lupaavalta näyttäisi tämä:

      http://www.scl.csd.uwo.ca/Projects/cpp2xml

      MUTTA: tuo ei toimi.

      Sen asennus vaatisi ensin toimivaa gcc 2.8.1 -kääntäjää.

      gcc 2.8.1:n saa kyllä imuroitua täältä:

      ftp://ftp.funet.fi/pub/gnu/prep/gcc/gcc-2.8.1.tar.gz

      ja käännöksen 1.vaihe onnistuu (käännetään siis gcc 2.8.1 käyttäen linuxin oletuskääntäjää, joka on paljon uudempi gcc kuin 2.8.1).

      kuten gcc 2.8.1:n ohjetiedostossa gcc.info-6 neuvotaan, niin käänsin ensin gcc 2.8.1:n oletuskääntäjällä.

      Varoituksia tulee paljon, mutta ei virheitä,joten käännös onnistuu ja tuloksena on g .

      seuraavaksi: make stage1

      tässä vaiheessa tulee monta virheilmoitusta puuttuvista tiedostoista kun niitä yritetään siirtää alihakemistoon stage1.

      Jos tästä huolimatta yrittää tehdä stage2:ta (jossa gcc 2.8.1 käännetään itsellään), niin tuloksena on iso kasa virheilmoituksia.

      Miten siis tuon gcc 2.8.1:n saa käännettyä?

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Takaisin ylös

    Luetuimmat keskustelut

    1. Naiset miltä kiihottuminen teissä tuntuu

      Kun miehellä tulee seisokki ja ja sellainen kihmelöinti sinne niin mitä naisessa köy? :)
      Sinkut
      68
      4723
    2. Haistoin ensin tuoksusi

      Käännyin katsomaan oletko se todellakin sinä , otin askeleen taakse ja jähmetyin. Moikattiin naamat peruslukemilla. Tu
      Ikävä
      14
      2279
    3. Olet sä kyllä

      ihme nainen. Mikä on tuo sun viehätysvoiman salaisuus?
      Ikävä
      25
      1804
    4. Hiljaiset hyvästit?

      Vai mikä on :( oonko sanonut jotain vai mitä?
      Ikävä
      13
      1526
    5. Teuvo Hakkaraisesta tulee eurovaalien ääniharava

      Persuissa harmitellaan omaa tyhmyyttä
      Maailman menoa
      32
      1471
    6. Miksi kohtelit minua kuin tyhmää koiraa?

      Rakastin sinua mutta kohtelit huonosti. Tuntuu ala-arvoiselta. Miksi kuvittelin että joku kohtelisi minua reilusti. Hais
      Särkynyt sydän
      5
      1328
    7. Turha mun on yrittää saada yhteyttä

      Oot mikä oot ja se siitä
      Suhteet
      10
      1237
    8. Näkymätöntä porukkaa vai ei

      Mon asuu yksin. Mitas mieltä ootte ?
      Ikävä
      15
      1156
    9. 23
      1092
    10. Kyllä poisto toimii

      Esitin illan suussa kysymyksen, joka koska palstalla riehuvaa häirikköä ja tiedustelin, eikö sitä saa julistettua pannaa
      80 plus
      4
      1061
    Aihe