[PATCH] Add Pascal/Delphi (.pas file) funcname pattern.

classic Classic list List threaded Threaded
5 messages Options
Reply | Threaded
Open this post in threaded view
|

[PATCH] Add Pascal/Delphi (.pas file) funcname pattern.

Avery Pennarun
Finds classes, records, functions, procedures, and sections.  Most lines
need to start at the first column, or else there's no way to differentiate
a procedure's definition from its declaration.

Signed-off-by: Avery Pennarun <[hidden email]>
---

The Ruby funcname pattern patch inspired me.  Although unlike him, I didn't
check with anyone else for confirmation.  How many Pascal programmers can
there possibly be? :)

 diff.c |    4 ++++
 1 files changed, 4 insertions(+), 0 deletions(-)

diff --git a/diff.c b/diff.c
index cbf2547..c73ba69 100644
--- a/diff.c
+++ b/diff.c
@@ -1380,6 +1380,10 @@ static struct builtin_funcname_pattern {
  "^[ ]*\\(\\([ ]*"
  "[A-Za-z_][A-Za-z_0-9]*\\)\\{2,\\}"
  "[ ]*([^;]*\\)$" },
+ { "pas", "\\(^\\(procedure\\|function\\|constructor\\|"
+ "destructor\\|interface\\|implementation\\|"
+ "type|initialization|finalization\\).*$\\)"
+ "\\|\\(^.*=[ \t]*\\(class\\|record\\).*$\\)" },
  { "tex", "^\\(\\\\\\(sub\\)*section{.*\\)$" },
 };
 
--
1.6.0.rc1.34.g23b24.dirty


--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add Pascal/Delphi (.pas file) funcname pattern.

Junio C Hamano
"Avery Pennarun" <[hidden email]> writes:

> Finds classes, records, functions, procedures, and sections.  Most lines
> need to start at the first column, or else there's no way to differentiate
> a procedure's definition from its declaration.
>
> Signed-off-by: Avery Pennarun <[hidden email]>
> ---
>
> The Ruby funcname pattern patch inspired me.  Although unlike him, I didn't
> check with anyone else for confirmation.  How many Pascal programmers can
> there possibly be? :)

> + { "pas", "\\(^\\(procedure\\|function\\|constructor\\|"
> + "destructor\\|interface\\|implementation\\|"
> + "type|initialization|finalization\\).*$\\)"
> + "\\|\\(^.*=[ \t]*\\(class\\|record\\).*$\\)" },

Is Delphi the only surviving Pascal?  Why is the name "pas", not "pascal"
or even "delphi-pascal"?

The keys are not file extensions ("ruby" example did the right thing by
not saying "rb").
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add Pascal/Delphi (.pas file) funcname pattern.

Petr Baudis
In reply to this post by Avery Pennarun
On Fri, Aug 01, 2008 at 03:45:15PM -0400, Avery Pennarun wrote:

> diff --git a/diff.c b/diff.c
> index cbf2547..c73ba69 100644
> --- a/diff.c
> +++ b/diff.c
> @@ -1380,6 +1380,10 @@ static struct builtin_funcname_pattern {
>   "^[ ]*\\(\\([ ]*"
>   "[A-Za-z_][A-Za-z_0-9]*\\)\\{2,\\}"
>   "[ ]*([^;]*\\)$" },
> + { "pas", "\\(^\\(procedure\\|function\\|constructor\\|"
> + "destructor\\|interface\\|implementation\\|"
> + "type|initialization|finalization\\).*$\\)"
> + "\\|\\(^.*=[ \t]*\\(class\\|record\\).*$\\)" },
>   { "tex", "^\\(\\\\\\(sub\\)*section{.*\\)$" },
>  };
>  

Wouldn't it be better to make the second pattern start on new line
instead of the outer \(\|\)?

Why "type"?

--
                Petr "Pasky, but not writing in Pascal anymore!" Baudis
As in certain cults it is possible to kill a process if you know
its true name.  -- Ken Thompson and Dennis M. Ritchie
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add Pascal/Delphi (.pas file) funcname pattern.

Avery Pennarun
In reply to this post by Junio C Hamano
On 8/1/08, Junio C Hamano <[hidden email]> wrote:
> Is Delphi the only surviving Pascal?  Why is the name "pas", not "pascal"
>  or even "delphi-pascal"?

No, but all surviving Pascals pretty much support the same syntax, so
when I say Pascal/Delphi, I mean either one.  And Delphi does use the
.pas extension.

>  The keys are not file extensions ("ruby" example did the right thing by
>  not saying "rb").

Will fix.

Avery
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Reply | Threaded
Open this post in threaded view
|

Re: [PATCH] Add Pascal/Delphi (.pas file) funcname pattern.

Avery Pennarun
In reply to this post by Petr Baudis
On 8/1/08, Petr Baudis <[hidden email]> wrote:
> On Fri, Aug 01, 2008 at 03:45:15PM -0400, Avery Pennarun wrote:
>  > +     { "pas", "\\(^\\(procedure\\|function\\|constructor\\|"
>  > +                     "destructor\\|interface\\|implementation\\|"
>  > +                     "type|initialization|finalization\\).*$\\)"
>  > +                     "\\|\\(^.*=[ \t]*\\(class\\|record\\).*$\\)" },
>
> Wouldn't it be better to make the second pattern start on new line
>  instead of the outer \(\|\)?

I didn't even know that was possible, but suddenly I understand the
"java" pattern a lot better.  Thanks!

>  Why "type"?

Well, it's a subsection, but it's always followed by a class or record
definition anyway, so I guess it makes more sense to omit it, now that
you bring it up.

Have fun,

Avery
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to [hidden email]
More majordomo info at  http://vger.kernel.org/majordomo-info.html