Antara String dan Komentar Source Code Delphi

Komentar atau Comment pada Source Code program Delphi adalah bagian yang diabaikan (tidak diproses) oleh Compiler / Interpreter. Komentar selalu memiliki tanda awal dan tanda akhir, dan berikut ini adalah kutipan mengenai komentar yang ada pada Delphi Help :

Comments are ignored by the compiler, except when they function as separators (delimiting adjacent tokens) or compiler directives.
There are several ways to construct comments:

{ Text between a left brace and a right brace constitutes a comment. }

(* Text between a left-parenthesis-plus-asterisk and an asterisk-plus-right-parenthesis also constitutes a comment. *)

// Any text between a double-slash and the end of the line constitutes a comment.

A comment that contains a dollar sign ($) immediately after the opening { or (* is a compiler directive. For example,

{$WARNINGS OFF}

tells the compiler not to generate warning messages.

Bagian lain dari source code delphi yang akan mematikan fungsi komentar (membuatnya menjadi bukan komentar) adalah String (runtun karakter yang diawali dan diakhiri oleh tanda kutip tunggal). Berbeda dengan tanda komentar (memiliki tanda yang berpasangan), maka string tidak memiliki tanda yang berpasangan (tanda awal dan tanda akhir string adalah sama, yaitu kutip tunggal).

Agar komentar menjadi mudah untuk dilewati (diabaikan) ketika kita memproses source code program delphi, maka berikut ini adalah aturan yang harus diikuti :

Jika terdapat tanda komentar didalam String, maka harus dianggap bagian dari string dan bukan komentar, demikian pula sebaliknya bilamana terdapat string didalam komentar, maka harus dianggap bagian dari komentar dan bukan string.

Untuk memahami perbedaan proses antara string dan komentar, maka kita batasi saja terlebih dahulu penggunaan pasangan tanda komentarnya, satu saja, yaitu yang diawal oleh tanda { dan diakhiri dengan tanda }

Berikut ini adalah contoh-contoh input dan output yang harus dihasilkan

Input

ini adalah text source code, { bagian ini adalah komentar },
dan bagian 'ini adalah string', titik.

Output

ini adalah text source code, ,
dan bagian 'ini adalah string', titik.

Input

ini adalah text source code, { bagian ini adalah komentar, dan ada 'string' didalamnya },
dan bagian 'ini adalah string', titik.

Output

ini adalah text source code, ,
dan bagian 'ini adalah string', titik.

Input

ini adalah text source code, { bagian ini adalah komentar, dan ada 'string' didalamnya },
dan bagian 'ini adalah string dan ada { komentar } didalamnya', titik.

Output

ini adalah text source code, ,
dan bagian 'ini adalah string dan ada { komentar } didalamnya', titik.

Input

ini adalah text source code, '{ bagian ini adalah komentar didalam string }',
dan bagian {'ini adalah string didalam komentar'}, titik.

Output

ini adalah text source code, '{ bagian ini adalah komentar didalam string }',
dan bagian , titik.

Dengan memperhatikan contoh-contoh Input dan Ouput seperti diatas, maka kita dapat membuat fungsi untuk membedakan bagian blok komentar yang bertanda { } dengan string yang bertanda kutip tunggal


Function StringOrBraces(const s: String): String;
Var
  i: Integer;
  p: PChar;
Begin
  Result:= '';
  If Length(s) < 1 Then Exit;
  i:= 1;
  While i <= Length(s) Do
  Begin
    If (s[i] = '{') Or (s[i] = '''') Then
    Begin
      If s[i] = '{' Then
        p:= StrPos(PChar(@s[i]), '}')
      Else p:= StrPos(PChar(@s[i + 1]), '''');
      If p <> Nil Then
      Begin
      If s[i] = '''' Then
        Result:= Result + Copy(s, i,
              (Integer(p) - Integer(PChar(@s[i]))) + 1);
      i:= i + (Integer(p) - Integer(PChar(@s[i])));
      End
      Else Break;
    End
    Else Result:= Result + s[i];
    Inc(i);
  End;
End;
Syntax Highlighted with http://delphi-id.org/syntax

Berikut ini adalah contoh gambar penggunaan fungsi tersebut (StringOrBraces)

string_vs_comment.gif

2 Responses to “Antara String dan Komentar Source Code Delphi”

  1. Fungsi untuk membuang Komentar Source Code Delphi « KIFMESOFT Says:

    [...] KIFMESOFT Blast it wide ….. « Antara String dan Komentar Source Code Delphi [...]

  2. Diana dan Dahlia Says:

    ;) ) ityuytr

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.