Toon posts:

[Alg] Matching accolades in code *

Pagina: 1
Acties:
  • 139 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Hoi,

weet er misschien iemand een tooltje waarmee ik de accolades in mijn code kan checken, ik bedoel dus waar ik er 1 te veel of te weinig heb. Compiler zeurt namelijk over unexpected '}', maar aangezien mijn programmaatje circa 1130 regels code bevat, is het best lastig om te vinden waar het precies zit.

alvast bedankt!

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

Elke decente editor kan dat. Aanraders: ultraedit, crimson editor, scite. 1130 regels is helemaal niks ;) dus zorg dat je snel wat goeie tools ([rml][ ALG] Win32 developer handige tools[/rml]) vindt :)

Zoekterm voor meer editors: [google=matching parentheses editor], 32000+ hits :P

Trouwens: geeft je compiler geen regelnummers? Brak zeg :{ Vervang die ook meteen ff...


Journalism is printing what someone else does not want printed; everything else is public relations.


  • R_W
  • Registratie: Oktober 2002
  • Niet online

R_W

Rataplan schreef op 24 October 2003 @ 01:42:
Trouwens: geeft je compiler geen regelnummers? Brak zeg :{ Vervang die ook meteen ff...
Is het niet zo dat een compiler een ontbrekende accolade pas veel later 'ontdekt'?

Als je bij PHP een } vergeten bent, geeft hij vrijwel altijd parse error op de laatste regel.

Of is dit onvergelijkbaar?

  • Rataplan
  • Registratie: Oktober 2001
  • Niet online

Rataplan

per aspera ad astra

R_W schreef op 24 October 2003 @ 02:18:
[...]

Is het niet zo dat een compiler een ontbrekende accolade pas veel later 'ontdekt'?

Als je bij PHP een } vergeten bent, geeft hij vrijwel altijd parse error op de laatste regel.

Of is dit onvergelijkbaar?
Mwah, niet echt, je hebt wel een punt. Ik heb zelf toch wel wat ervaring met PHP, maar ik gebruik die brace finders bijna nooit; meestal is het met wat extra {} plaatsen (en natuurlijk met goed indenten) eenvoudiger te vinden.

Want als een compiler/interpreter er niet achter komt welke sets haakjes bij elkaar horen, hoef je dat van een tooltje ook niet te verwachten :)


Journalism is printing what someone else does not want printed; everything else is public relations.


  • R_W
  • Registratie: Oktober 2002
  • Niet online

R_W

Met goed indenten, moet het als het goed is meteen opvallen als je het een keer fout doet, idd.

Ultraedit geeft de sluit accolade ( } ) een kleurtje als je de open accolade selecteert, dat kan ook makkelijk zijn :)

  • André
  • Registratie: Maart 2002
  • Laatst online: 19-08 12:30

André

Analytics dude

Het is in elk geval zo dat je een color-coding editor nodig hebt. En als je dan langzaam alles bij langs loopt kom je vanzelf op een plek waar de kleuren niet helemaal goed staan.

  • R_W
  • Registratie: Oktober 2002
  • Niet online

R_W

Huh? Volgensmij veranderen de kleuren niet als je een accolade plaatst hoor...

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 18:33
Ik zou toch gaan denken over wat code refactoring als je accolades niet kan vinden.

Ik heb idee dat je code dan een ongelooflijke brei is.

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Zoals reeds vaak aangegeven is kun je met fatsoenlijk indenteren dit soort problemen voorkomen. Mijn persoonlijk ervaring is dat het op de 'openingsaccolade achter neststatement'-stijl vaak fout loopt, en je er eigenlijk voor moet zorgen dat beide accolades altijd op dezelfde indentering staan. Dus:
C:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Error-prone
for(int i = 0; i != 10; i++) {
  ..
}

// Duidelijk
for(int i = 0; i != 10; i++) 
{
  ..
}

// Alternatief
for(int i = 0; i != 10; i++)
  {
  ..
  }

Daarnaast bevat iedere beetje fatsoenlijke IDE shortcuts om matching haken te vinden: VC highlight de openingshaak als je de sluithaak typt (geldt voor ), }, ] ), en in BCB kun je alt+} of alt+{ typen met de cursor op een haak om de matcher te vinden.

En tenslotte zijn in mijn ervaring de compilererrors bij missende haken ruim duidelijk genoeg om het snel te vinden, of je bent echt enorm aan het prutsen geweest ;)

Professionele website nodig?


Verwijderd

Topicstarter
Rataplan schreef op 24 oktober 2003 @ 01:42:

Trouwens: geeft je compiler geen regelnummers? Brak zeg :{ Vervang die ook meteen ff...
Dank jullie wel vor alle replies!

to Rataplan: Zoals iemand al eerder opmerkte , als je ergens een accolade vergeet, dan geeft de compiler daar over het algemeen pas veel later melding van.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 13-08 16:46

curry684

left part of the evil twins

Verwijderd schreef op 24 October 2003 @ 09:54:
[...]
to Rataplan: Zoals iemand al eerder opmerkte , als je ergens een accolade vergeet, dan geeft de compiler daar over het algemeen pas veel later melding van.

Niet correct, je krijgt een error bij de eerstvolgende functie omdat je daar volgens de compiler een functie binnen een functie probeert te declareren. Op dat moment moet je dus de voorgaande functie gaan uitzoeken, wat je zoekgebied drastisch reduceert als het goed is :)

Vandaar mijn opmerking dat dit meestal niet zo'n ramp is ;)

Professionele website nodig?


  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

Oke, er staat C in de titel, maar Voor de mensen die in Java programmeren en met hetzelfde probleem zitten, is CheckStyle misschien iets. Bij een hoorcollege van Ordina bij een vak Vertalerbouw vertelden de sprekers dat ze deze tool bij Ordina gebruiken, en het is vrij handig. Het is een parser die je Java code parset en dan kijkt of je aan een aantal standaarden (die je zelf in kan stellen) voldoet. Ik weet niet of zo'n tool ook voor andere talen bestaat, maar het zou natuurlijk kunnen ;)

fix0red ;)

[ Voor 36% gewijzigd door curry684 op 24-10-2003 10:27 ]

The hardest thing in the world to understand is the income tax. - Albert Einstein

Pagina: 1