[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re[2]: grammar.246
Text item:
> I have the feeling we are on different mental tracks. Here's the rule I'm
> proposing:
> This allows I_819-separated statements or fragments, but doesn't allow
> fragments
> within statements.
> Do you still see problems with this?
I was apparently suffering from brain leakage when I responded earlier.
Yes, your change looks right. My change would have had the questionable
result of permitting a prenex on a fragment.
> I think you should send me bnf.246, and I will check it as carefully as I can
> and make the changes to bnf.247, and return that to you for a double-check.
The current state is attached. It differs from 246 in that free is still
permitted after ZOhU, and also after TUhE even in the absence of a tag.
The other 247 changes we have discussed include allowing fragment_20 as the
first (and only) component of paragraph_10, and allowing free after CEhE, PEhE,
and BIhE. Is that all?
--
Clark Nelson
clark_nelson@ccm.jf.intel.com
----------------------------------------
LOJBAN MACHINE GRAMMAR, BNF VERSION, 2nd BASELINE AS OF 23 JUNE 1991
WHICH IS ORIGINAL BASELINE 20 JULY 1990 INCORPORATING JC'S TECH FIXES 1-28
This version includes change proposals 1-46 to that baseline,
dated 20 March 1996 by Clark Nelson.
COPYRIGHT 1989,1990,1991,1992,1993,1994,1995,1996 THE LOGICAL LANGUAGE GROUP,
INC.
CONTACT THAT ORGANIZATION AT 2904 BEAU LANE, FAIRFAX VA 22031 USA 703-385-0273
PERMISSION TO COPY GRANTED SUBJECT TO YOUR VERIFICATION THAT THIS IS THE
LATEST VERSION OF THE LOJBAN GRAMMAR, THAT YOUR DISTRIBUTION BE FOR
PROMOTION OF LOJBAN, THAT THERE IS NO CHARGE FOR THE PRODUCT, AND THAT
THIS COPYRIGHT NOTICE IS INCLUDED INTACT IN THE COPY.
Explanation of notation:
All rules have the form:
name<number> = bnf-expression
which means that the grammatical construct "name" is defined by
"bnf-expression". The number cross-references this grammar with
the rule numbers in the YACC grammar. The names are the same as those
in the YACC grammar, except that subrules are labeled with A, B, C, ... in the
YACC grammar and with 1, 2, 3, ... in this grammar. In addition, rule 971 is
"simple_tag" in the YACC grammar but "stag" in this grammar, because of its
frequent appearance.
1) Names in lower case are grammatical constructs.
2) Names in UPPER CASE are selma'o (lexeme) names, and are terminals.
3) Concatenation is expressed by juxtaposition with no operator symbol.
4) | represents alternation (choice).
5) [] represents an optional element.
6) & represents and/or ("A & B" is the same as "A | B | A B").
7) ... represents optional repetition of the construct to the left.
Left-grouping is implied; right-grouping is shown by explicit
self-referential recursion with no "..."
8) () serves to indicate the grouping of the other operators.
Otherwise, "..." binds closer than &, which binds closer than |.
9) # is shorthand for "[free ...]", a construct which appears in many places.
10) // encloses an elidable terminator, which may be omitted (without change
of meaning) if no grammatical ambiguity results.
text<0> = [NAI ...] [CMENE ... # | (indicators & free ...)] [joik-jek] text-1
text-1<2> = [(I [jek | joik] [[stag] BO] #) ... | NIhO ... #] [paragraphs]
paragraphs<4> = paragraph [NIhO ... # paragraphs]
paragraph<10> = statement [I # [statement | fragment]] ...
statement<11> = statement-1 | prenex statement
statement-1<12> = statement-2 [I joik-jek [statement-2]] ...
statement-2<13> = statement-3 [I [jek | joik] [stag] BO # [statement-2]]
statement-3<14> = sentence | [tag] TUhE # text-1 /TUhU#/
fragment<20> = ek # | gihek # | quantifier | NA # | terms /VAU#/ | prenex |
relative-clauses | links | linkargs
prenex<30> = terms ZOhU #
sentence<40> = [terms [CU #]] bridi-tail
subsentence<41> = sentence | prenex subsentence
bridi-tail<50> = bridi-tail-1
[gihek [stag] KE # bridi-tail /KEhE#/ tail-terms]
bridi-tail-1<51> = bridi-tail-2 [gihek # bridi-tail-2 tail-terms] ...
bridi-tail-2<52> = bridi-tail-3 [gihek [stag] BO # bridi-tail-2 tail-terms]
bridi-tail-3<53> = selbri tail-terms | gek-sentence
gek-sentence<54> = gek subsentence gik subsentence tail-terms |
tag KE gek-sentence /KEhE#/ | NA # gek-sentence
tail-terms<71> = [terms] /VAU#/
terms<80> = terms-1 ...
terms-1<81> = terms-2 [PEhE joik-jek terms-2] ...
terms-2<82> = term [CEhE term] ...
term<83> = sumti | (tag | FA #) (sumti | /KU#/) | termset | NA KU #
termset<85> = NUhI gek terms /NUhU#/ gik terms /NUhU#/ |
NUhI terms /NUhU#/
sumti<90> = sumti-1 [VUhO relative-clauses]
sumti-1<91> = sumti-2 [(ek | joik) [stag] KE # sumti /KEhE#/]
sumti-2<92> = sumti-3 [joik-ek sumti-3] ...
sumti-3<93> = sumti-4 [(ek | joik) [stag] BO # sumti-3]
sumti-4<94> = sumti-5 | gek sumti gik sumti-4
sumti-5<95> = [quantifier] sumti-6 [relative-clauses] |
quantifier selbri /KU#/ [relative-clauses]
sumti-6<97> = (LAhE # | NAhE BO #) [relative-clauses] sumti /LUhU#/ |
KOhA # | lerfu-string /BOI#/ | LA [relative-clauses] CMENE ... # |
(LA | LE) sumti-tail /KU#/ | LI mex /LOhO#/ |
ZO any-word # | LU text /LIhU/ # | LOhU any-word ... LEhU # |
ZOI any-word anything any-word #
sumti-tail<111> = [sumti-6 [relative-clauses]] sumti-tail-1 |
relative-clauses sumti-tail-1
sumti-tail-1<112> = [quantifier] selbri [relative-clauses] | quantifier sumti
relative-clauses<121> = relative-clause [ZIhE relative-clause] ...
relative-clause<122> = GOI term /GEhU#/ | NOI subsentence /KUhO#/
selbri<130> = [tag] selbri-1
selbri-1<131> = selbri-2 | NA # selbri
selbri-2<132> = selbri-3 [CO # selbri-2]
selbri-3<133> = selbri-4 ...
selbri-4<134> = selbri-5
[joik-jek selbri-5 | joik [stag] KE # selbri-3 /KEhE#/] ...
selbri-5<135> = selbri-6 [(jek | joik) [stag] BO # selbri-5]
selbri-6<136> = tanru-unit [BO selbri-6] | [NAhE #] guhek selbri gik selbri-6
tanru-unit<150> = tanru-unit-1 [CEI # tanru-unit-1] ...
tanru-unit-1<151> = tanru-unit-2 [linkargs]
tanru-unit-2<152> = BRIVLA # | GOhA [RAhO] # | KE selbri-3 /KEhE#/ |
ME sumti /MEhU#/ [MOI] # | (number | lerfu-string) MOI # |
NUhA mex-operator | SE # tanru-unit-2 | JAI [tag] tanru-unit-2 |
any-word (ZEI any-word) ... | NAhE # tanru-unit-2 |
NU [NAI] # [joik-jek NU [NAI] #] ... subsentence /KEI#/
linkargs<160> = BE term [links] /BEhO#/
links<161> = BEI term [links]
quantifier<300> = number /BOI#/ | VEI mex /VEhO#/
mex<310> = mex-1 [operator mex-1] ... | FUhA rp-expression
mex-1<311> = mex-2 [BIhE operator mex-1]
mex-2<312> = operand | [PEhO] operator mex-2 ... /KUhE#/
rp-expression<330> = rp-operand rp-operand operator
rp-operand<332> = operand | rp-expression
operator<370> = operator-1
[joik-jek operator-1 | joik [stag] KE # operator /KEhE#/] ...
operator-1<371> = operator-2 | guhek operator-1 gik operator-2 |
operator-2 (jek | joik) [stag] BO # operator-1
operator-2<372> = mex-operator | KE operator /KEhE#/
mex-operator<374> = SE # mex-operator | NAhE # mex-operator |
MAhO mex /TEhU#/ | NAhU selbri /TEhU#/ | VUhU #
operand<381> = operand-1 [(ek | joik) [stag] KE # operand /KEhE#/]
operand-1<382> = operand-2 [joik-ek operand-2] ...
operand-2<383> = operand-3 [(ek | joik) [stag] BO # operand-2]
operand-3<385> = quantifier | lerfu-string /BOI#/ |
NIhE selbri /TEhU#/ | MOhE sumti /TEhU#/ |
JOhI mex-2 ... /TEhU#/ | gek operand gik operand-3 |
(LAhE # | NAhE BO #) operand /LUhU#/
number<812> = PA [PA | lerfu-word] ...
lerfu-string<817> = lerfu-word [PA | lerfu-word] ...
lerfu-word<987> = BY | any-word BU | LAU lerfu-word | TEI lerfu-string FOI
ek<802> = [NA] [SE] A [NAI]
gihek<818> = [NA] [SE] GIhA [NAI]
jek<805> = [NA] [SE] JA [NAI]
joik<806> = [SE] JOI [NAI] | interval | GAhO interval GAhO
interval<932> = [SE] BIhI [NAI]
joik-ek<421> = joik # | ek #
joik-jek<422> = joik # | jek #
gek<807> = [SE] GA [NAI] # | joik GI # | stag gik
guhek<808> = [SE] GUhA [NAI] #
gik<816> = GI [NAI] #
tag<491> = tense-modal [joik-jek tense-modal] ...
stag<971> = simple-tense-modal [(jek | joik) simple-tense-modal] ...
tense-modal<815> = simple-tense-modal # | FIhO selbri /FEhU#/
simple-tense-modal<972> = [NAhE] [SE] BAI [NAI] [KI] |
[NAhE] (time [space] | space [time]) & CAhA [KI] | KI | CUhE
time<1030> = ZI & time-offset ... & ZEhA [PU [NAI]] & interval-property ...
time-offset<1033> = PU [NAI] [ZI]
space<1040> = VA & space-offset ... & space-interval & (MOhI space-offset)
space-offset<1045> = FAhA [NAI] [VA]
space-interval<1046> = ((VEhA & VIhA) [FAhA [NAI]]) & space-int-props
space-int-props<1049> = (FEhE interval-property) ...
interval-property<1051> = number ROI [NAI] | TAhE [NAI] | ZAhO [NAI]
free<32> = SEI # [terms [CU #]] selbri /SEhU/ | SOI sumti [sumti] /SEhU/ |
vocative [relative-clauses] selbri [relative-clauses] /DOhU/ |
vocative [relative-clauses] CMENE ... # [relative-clauses] /DOhU/ |
vocative [sumti] /DOhU/ | (number | lerfu-string) MAI |
TO text /TOI/ | XI (number | lerfu-string) /BOI/ |
XI VEI mex /VEhO/
vocative<415> = (COI [NAI]) ... & DOI
indicators<411> = [FUhE] indicator ...
indicator<413> = (UI | CAI) [NAI] | Y | DAhO | FUhO
The following rules are non-formal:
word<1100> = [BAhE] any-word [indicators]
any-word = "any single word (no compound cmavo)"
anything = "any text at all, whether Lojban or not"
null<1101> = any-word SI | utterance SA | text SU
FAhO is a universal terminator and signals the end of parsable input.
Text item: External Message Header
The following mail header is for administrative use
and may be ignored unless there are problems.
***IF THERE ARE PROBLEMS SAVE THESE HEADERS***.
Content-Transfer-Encoding: 7bit
Content-Type: text/plain; charset=us-ascii
References: <Wed, 20 Mar 96 15:45:08 PST_6@ccm.jf.intel.com>
Subject: Re: grammar.246
To: Clark Nelson <Clark_Nelson@ccm.jf.intel.com>
MIME-Version: 1.0
X-Mailer: Mozilla 2.0 (Win16; I)
Organization: Lojban Peripheral
From: John Cowan <cowan@locke.ccil.org>
Date: Thu, 21 Mar 1996 13:16:07 -0500
Message-ID: <31519CE7.3568@ccil.org>
.jf.intel.com>; Thu, 21 Mar 1996 13:17:48 -0500
com>; Thu, 21 Mar 1996 10:18:25 -0800 (PST)
.intel.com>; Thu, 21 Mar 1996 10:18:59 -0800
Return-Path: cowan@ccil.org