"cc" shows an old value instead of overridden

7 views
Skip to first unread message

ole...@gmail.com

unread,
Oct 5, 2021, 12:25:57 PM10/5/21
to Grammatical Framework
Hello,

I've overridden a function by restricting inheritance and defining the function again. I get the new value in "linearize", but "compute_concrete" displays the old value.

Is it the expected behavior? Can I ask "cc" to use the new value? Do I override the function correctly?

An example to reproduce, with the function "beer_N", old value "beer" and new value "piwo":

>>
$ gf
This is GF version 3.11.0. 
Built on darwin/x86_64 with ghc-8.6, flags: interrupt server c-runtime
...

Languages:
> > i -retain TestEng.gf
58 msec
> cc beer_N
{s = table
       ParamX.Number
<<

I expect to see the word "piwo", not "beer"

>>
       [table ResEng.Case ["beer"; "beer's"];
        table ResEng.Case ["beers"; "beers'"]];
 g = ResEng.Neutr; lock_N = <>}
1 msec
> line (UseN beer_N)
linking ... OK

Languages: TestEng
<<

The word "piwo" as expected

>>
piwo

1052 msec
>
See you.
0 msec


$ cat Test.gf
abstract Test =
  Lang
**
{
};


$ cat TestEng.gf
concrete TestEng of Test =
  GrammarEng,
  LexiconEng-[beer_N]
** open
  (P=ParadigmsEng)
in
{
lin
  beer_N = P.regN "piwo" ;
}
$
<<

Regards,
Oleg
Reply all
Reply to author
Forward
0 new messages