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

449

    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ä.

    Luetuimmat keskustelut

    1. Mitä siellä ABC on tapahtunut

      Tavallista isompi operaatio näkyy olevan kyseessä.
      Alajärvi
      161
      6462
    2. Kuvaile elämäsi naista

      Millainen hän on? Mikä tekee hänestä sinulle erityisen?
      Ikävä
      52
      1872
    3. Klaukkalan onnettomuus 4.4

      Klaukkalassa oli tänään se kolmen nuoren naisen onnettomuus, onko kellään mitään tietoa mitä kävi tai ketä onnettomuudes
      Nurmijärvi
      44
      1600
    4. Kuvaile elämäsi miestä

      Millainen hän on? Mikä tekee hänestä sinulle erityisen?
      Ikävä
      54
      1132
    5. Ukraina ja Zelenskyn ylläpitämä sota tuhoaa Euroopan, ei Venäjä

      Mutta tätä ei YLE eikä Helsingin Sanomat kerto.
      Maailman menoa
      327
      1059
    6. Kolari Klaukkala

      Kaksi teinityttö kuoli. Vastaantulijoille ei käynyt mitenkään. Mikä auto ja malli telineillä oli entä se toinen auto? Se
      Nurmijärvi
      49
      999
    7. Ooo! Kaija Koo saa kesämökille öky-rempan:jättimäinen terde, poreallas... Katso ennen-jälkeen kuvat!

      Wow, nyt on Kaija Koon mökkipihalla kyllä iso muutos! Miltä näyttää, haluaisitko omalle mökillesi vaikkapa samanlaisen l
      Kesämökki
      13
      960
    8. Olisinpa jo siellä, otatkohan minut vastaan

      Olisitpa lähelläni ja antaisit minun maalata sinulle kuvaa siitä kaikesta ikävästä, tuskasta, epävarmuudesta ja mieleni
      Ikävä
      79
      908
    9. Kevyt on olo

      Tiedättekö, että olo kevenee kummasti, kun päästää turhista asioista tai ihmisistä irti! Tämä on hyvä näin <3
      Ikävä
      84
      908
    10. Toivoisin, että lähentyisit kanssani

      Tänään koin, että välillämme oli enemmän. Kummatkin katsoivat pidempään kuin tavallisesti toista silmiin. En tiedä mistä
      Ikävä
      14
      897
    Aihe