Re: [O] Perl parser, some questions
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
Re: [O] Perl parser, some questions
On Thu, Mar 31, 2011 at 3:21 PM, Eric S Fraga wrote: > Steven Haryanto writes: > > > 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? > > If you are referring to lines like this one: > > #+OPTIONS: oddeven hideblocks > > the syntax is space separated options. > >From the manual (emphasis mine): "*Several setting words* can be in the same line, but you can also have multiple lines for the keyword." So I guess "setting words" mean setting's arguments (and not setting names, like specifying OPTIONS and TODO on the same line)? > What is the main purpose of your parser? > I first wrote it because I thought it would be fun, and CPAN does not have one already. The parser converts Org document into a tree of node objects, and can be a base for other efforts, like exporter to HTML/TXT/POD. -- sh
Re: [O] Perl parser, some questions
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. - Carsten
Re: [O] Perl parser, some questions
Steven Haryanto writes: [...] >>From the manual (emphasis mine): "*Several setting words* can be in the same > line, but you can also have multiple lines for the keyword." So I guess > "setting words" mean setting's arguments (and not setting names, like > specifying OPTIONS and TODO on the same line)? Yes, I think the manual is trying to say that you can have multiple #+OPTIONS: lines, say, each of which may have one or more settings (tags:, t:, toc:, ...). >> What is the main purpose of your parser? >> > > I first wrote it because I thought it would be fun, and CPAN does not have > one already. The parser converts Org document into a tree of node objects, > and can be a base for other efforts, like exporter to HTML/TXT/POD. I asked because org has multiple uses, from outliner through to project management, and it may help to concentrate on one particular aspect... -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1 : using Org-mode version 7.5 (release_7.5.122.g2f72.dirty)
Re: [O] Perl parser, some questions
Steven Haryanto writes: > 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? If you are referring to lines like this one: #+OPTIONS: oddeven hideblocks the syntax is space separated options. I cannot really help you with the rest of your questions unfortunately. I do think you may end up getting a little frustrated in the near future: org has grown "organically" and so doesn't have a well defined or consistent syntax across all the features. This is not a criticism of org mode, by the way... just an observation! The only real definition of the syntax is the (ever changing) emacs lisp code that implements it. What is the main purpose of your parser? -- : Eric S Fraga (GnuPG: 0xC89193D8FFFCF67D) in Emacs 24.0.50.1 : using Org-mode version 7.5 (release_7.5.122.g2f72.dirty)
[O] Perl parser, some questions
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? 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. #+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.) 3. What constitutes a valid tag? Emacs doesn't seem to recognize tags (e.g. align them) if they contain a dash. 4. What is the difference between TYP_TODO/TODO/SEQ_TODO? (IIRC, the manual is not clear on this). Or between TAGS/FILETAGS. There may be more coming along. Regards, Steven [1] http://search.cpan.org/dist/Org-Parser/lib/Org/Parser.pm