From mboxrd@z Thu Jan 1 00:00:00 1970 From: Steven Haryanto Subject: Re: Perl parser, some questions Date: Thu, 31 Mar 2011 16:15:34 +0700 Message-ID: References: <61DB2A6C-1F7C-4CA6-972B-F30493D817E6@gmail.com> Mime-Version: 1.0 Content-Type: multipart/alternative; boundary=00248c767e7a6185ec049fc3bcce Return-path: Received: from [140.186.70.92] (port=39663 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Q5Dyb-0003Jo-Ck for emacs-orgmode@gnu.org; Thu, 31 Mar 2011 05:15:39 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Q5DyZ-0003i0-K4 for emacs-orgmode@gnu.org; Thu, 31 Mar 2011 05:15:36 -0400 Received: from mail-yw0-f41.google.com ([209.85.213.41]:64856) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Q5DyZ-0003hv-Et for emacs-orgmode@gnu.org; Thu, 31 Mar 2011 05:15:35 -0400 Received: by yws5 with SMTP id 5so1058038yws.0 for ; Thu, 31 Mar 2011 02:15:35 -0700 (PDT) In-Reply-To: <61DB2A6C-1F7C-4CA6-972B-F30493D817E6@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Carsten Dominik Cc: emacs-orgmode@gnu.org --00248c767e7a6185ec049fc3bcce Content-Type: text/plain; charset=ISO-8859-1 On Thu, Mar 31, 2011 at 3:39 PM, Carsten Dominik wrote: > > On Mar 31, 2011, at 7:05 AM, Steven Haryanto wrote: > > > Hi all, > > > > I'm writing an Org parser for Perl[1]. There are a few things about the > syntax which are still unclear to me. > > > > 1. The manual says that multiple (different) in-buffer settings can be > specified on the same line, but so far I haven't found such example > anywhere. What is the syntax for this? > > This only applied to the #+STARTUP settings which can have a number > of keywords on a single line, like > > #+STARTUP: align hidestars odd > > > > > 2. For settings that can be applied near a block or table, like: > > > > |1|2 > > |2|6 > > #+TBLFM: @2$1=@1$1*2::@2$2=@1$2*3 > > > > does it matter if it is specified before/after? Can there be separating > lines between them? E.g. > > Yes, there can be other lines in between, even though > this is probably not a good idea. The way the parser works > is that it runs through the buffer, finds CAPTURE etc and > applies it the next thing (table, link,...) that wants it. > > > > > #+CAPTION: Some caption > > some text <-- allowed? > > #+LABEL: ... > > some more text <-- allowed? > > |...|...| > > |...|...| > > > > (And btw, multiple #+TBLFM below a table doesn't seem to work on my > Emacs, all formulas need to be specified on a single (long) TBLFM setting.) > > Yes, only one TBLFM line per table. > > > > > 3. What constitutes a valid tag? Emacs doesn't seem to recognize tags > (e.g. align them) if they contain a dash. > > Tags are matched by [[:alnum:]_@#%:]+ > > Dashes are not allowed because this would be cumbersome for the > agenda tags matcher which uses "-" as NOT. > > > > > 4. What is the difference between TYP_TODO/TODO/SEQ_TODO? > > TODO and SEQ_TODO are the same. TYP_TODO is slightly different > in operation. When you press C-c C-t in a line with the keyword > defined by TYP_TODO, the task will immediately switch to DONE, > instead of to the next state in the sequence. I do believe the > manual explains this quite well, but I don't believe many people use this. > > > > (IIRC, the manual is not clear on this). Or between TAGS/FILETAGS. > > TAGS defines tags that will be used in the buffer > and defines fast keyboard shortcuts for them. Though > you are allowed to also use tags that are not in tis list. > > FILETAGS defines tags that are *inherited* by all trees in the buffer, > You can imagine FILETAGS as the tags specified on a level zero headline > of which all level one headlines in the buffer are children. > > HTH. > > Thanks for the clear up, Carsten! I've implemented some of the points (like regex for tags) into the parser, and the rest into the project's todo list. Btw, you probably meant [[:alnum:]_@#%]+ (without the colon)? Since the colon is used to separate between tags? Regards, Steven --00248c767e7a6185ec049fc3bcce Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
On Thu, Mar 31, 2011 at 3:39 PM, Carsten Dominik= <carsten= .dominik@gmail.com> wrote:

On Mar 31, 2011, at 7:05 AM, Steven Haryanto wrote:

> Hi all,
>
> I'm writing an Org parser for Perl[1]. There are a few things abou= t the syntax which are still unclear to me.
>
> 1. The manual says that multiple (different) in-buffer settings can be= specified on the same line, but so far I haven't found such example an= ywhere. What is the syntax for this?

This only applied to the #+STARTUP settings which can have a number of keywords on a single line, like

#+STARTUP: align hidestars odd

>
> 2. For settings that can be applied near a block or table, like:
>
> =A0|1|2
> =A0|2|6
> =A0#+TBLFM: @2$1=3D@1$1*2::@2$2=3D@1$2*3
>
> does it matter if it is specified before/after? Can there be separatin= g lines between them? E.g.

Yes, there can be other lines in between, even though
this is probably not a good idea. =A0The way the parser works
is that it runs through the buffer, finds CAPTURE etc and
applies it the next thing (table, link,...) that wants it.

>
> =A0#+CAPTION: Some caption
> =A0some text <-- allowed?
> =A0#+LABEL: ...
> =A0some more text <-- allowed?
> =A0|...|...|
> =A0|...|...|
>
> (And btw, multiple #+TBLFM below a table doesn't seem to work on m= y Emacs, all formulas need to be specified on a single (long) TBLFM setting= .)

Yes, only one TBLFM line per table.

>
> 3. What constitutes a valid tag? Emacs doesn't seem to recognize t= ags (e.g. align them) if they contain a dash.

Tags are matched by [[:alnum:]_@#%:]+

Dashes are not allowed because this would be cumbersome for the
agenda tags matcher which uses "-" as NOT.

>
> 4. What is the difference between TYP_TODO/TODO/SEQ_TODO?

TODO and SEQ_TODO are the same. =A0TYP_TODO is slightly different
in operation. =A0When you press C-c C-t in a line with the keyword
defined by TYP_TODO, the task will immediately switch to DONE,
instead of to the next state in the sequence. =A0I do believe the
manual explains this quite well, but I don't believe many people use th= is.


> (IIRC, the manual is not clear on this). Or between TAGS/FILETAGS.

TAGS defines tags that will be used in the buffer
and defines fast keyboard shortcuts for them. =A0Though
you are allowed to also use tags that are not in tis list.

FILETAGS defines tags that are *inherited* by all trees in the buffer,
You can imagine FILETAGS as the tags specified on a level zero headline
of which all level one headlines in the buffer are children.

HTH.


=A0Thanks for the clear up, Carsten! I've i= mplemented some of the points (like regex for tags) into the parser, and th= e rest into the project's todo list. Btw, you probably meant=A0[[:alnum= :]_@#%]+ (without the colon)? Since the colon is used to separate between t= ags?

Regards,
Steven
--00248c767e7a6185ec049fc3bcce--