digitalmars.D.bugs - [documentation] new expression
- Ivan Senji (5/5) Jan 26 2005 Where is the grammar that explains:
- Stewart Gordon (12/17) Jan 26 2005 Wrong. If that were it, it would have to be
- Ivan Senji (16/33) Jan 26 2005 Yor are right.
-
Stewart Gordon
(19/28)
Jan 26 2005
-
Ivan Senji
(9/28)
Jan 26 2005
-
Stewart Gordon
(13/19)
Jan 26 2005
- news.digitalmars.com (47/59) Jan 26 2005 Believe it or not, it works! Thanks a lot Stewart!
-
ivan senji
(3/3)
Jan 26 2005
"news.digitalmars.com"
wrote in message
Where is the grammar that explains: float[] fl = new float[100]; For this to be posible Declarator should be able to be ; but it can't. NewExpression: new BasicType Stars [ AssignExpression ] Declarator
Jan 26 2005
Ivan Senji wrote:Where is the grammar that explains: float[] fl = new float[100]; For this to be posible Declarator should be able to be ; but it can't.Wrong. If that were it, it would have to be float[] f1 = new float[100];;NewExpression: new BasicType Stars [ AssignExpression ] DeclaratorThat states exactly nothing about what Declarator can be. But it looks plain wrong to me - surely it should be simply NewExpression: new BasicType Stars [ AssignExpression ] Or am I missing something? Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Jan 26 2005
"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message news:ct7uov$1e8a$1 digitaldaemon.com...Ivan Senji wrote:Yor are right.Where is the grammar that explains: float[] fl = new float[100]; For this to be posible Declarator should be able to be ; but it can't.Wrong. If that were it, it would have to be float[] f1 = new float[100];;Ofcourse it doesn't. But this does: Declarator: BasicType2 Declarator Identifier ( Declarator ) Identifier DeclaratorSuffixes ( Declarator ) DeclaratorSuffixes And none of those can be nothing.NewExpression: new BasicType Stars [ AssignExpression ] DeclaratorThat states exactly nothing about what Declarator can be.But it looks plain wrong to me - surely it should be simply NewExpression: new BasicType Stars [ AssignExpression ]It is better (maybe i am missing something too), but what about float[][] f = new float[][10]; All i know is that this D grammar is driving me crazy, but i need it very much so i can't give up.Or am I missing something? Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Jan 26 2005
Ivan Senji wrote:"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message news:ct7uov$1e8a$1 digitaldaemon.com...<snip><snip> Oh yes. And it would also seem to exclude such declarations as float[5]*[] f = new float[5]*[20]; (Does DMD accept this?) But here's one that would seem to follow the pattern: NewExpression: BasicNewExpression BasicNewExpression ( ArgumentList ) BasicNewExpression: new BasicType BasicNewExpression * BasicNewExpression [ AssignExpression ] (is the Stars nonterminal really necessary?) Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.But it looks plain wrong to me - surely it should be simply NewExpression: new BasicType Stars [ AssignExpression ]It is better (maybe i am missing something too), but what about float[][] f = new float[][10];
Jan 26 2005
"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message news:ct87n3$1omm$1 digitaldaemon.com...Ivan Senji wrote:<snip>"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message news:ct7uov$1e8a$1 digitaldaemon.com...Oh yes. And it would also seem to exclude such declarations as float[5]*[] f = new float[5]*[20]; (Does DMD accept this?)Yes it does :) And also this: float*[5]**[] f = new float*[5]**[20];But here's one that would seem to follow the pattern: NewExpression: BasicNewExpression BasicNewExpression ( ArgumentList ) BasicNewExpression: new BasicType BasicNewExpression * BasicNewExpression [ AssignExpression ]I'll try it.(is the Stars nonterminal really necessary?)Probably not, i copied this part of the grammar from the docs and left it as is.Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Jan 26 2005
Ivan Senji wrote:"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message news:ct87n3$1omm$1 digitaldaemon.com...<snip><snip> Oops ... forgot BasicNewExpression [ ] to allow float*[]**[] f = new float*[]**[20]; or even float*[]**[]* f = new float*[]**[]; Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.BasicNewExpression: new BasicType BasicNewExpression * BasicNewExpression [ AssignExpression ]
Jan 26 2005
"Stewart Gordon" <smjg_1998 yahoo.com> wrote in message news:ct87n3$1omm$1 digitaldaemon.com...But here's one that would seem to follow the pattern: NewExpression: BasicNewExpression BasicNewExpression ( ArgumentList ) BasicNewExpression: new BasicType BasicNewExpression * BasicNewExpression [ AssignExpression ]Believe it or not, it works! Thanks a lot Stewart! This has enabled my translator to progress. What do you say about this code: int main (char [][] args) { float[][] floats; floats = new float[][10]; //create rows of the 2D array each floats = new float[10]; //floats[i][j] = (i+1)/(j+1) foreach i and j (each[int i,int j] floats) = (i+1)/(j+1); //printf each float in a new row writefln("Float %d",index,each[int index] floats); //also in beta is something from c-omega int[] ints = new int[10]; //increment ints from 3 .. 5 ints[3..5].{it++;}; //printf each int to screen and then multiply it by 2 ints.{writef(it); it*=2;}; //this is also going to work soon: floats.{ it.{writef(it);}; writefln(); }; //meaning... floats.{ //foreach row... it.{ //printf each elemenet in row writef(it); }; //and then newline writefln(); }; //and new postfix casting : float f = 3.14; int x = f.cast(int); } int func(inout int x) { if(x>0){x++; return;} if(x<0){x--; return;} noreturn; //means this mustn't be reached or exception will be thrown } Extending D syntax is real fun. But geting the grammar to work is extreamly hard. The biggest thing missing right now are initializers and they are going to be difficult to write. Thanks again for your help :)Stewart. -- My e-mail is valid but not my primary mailbox. Please keep replies on the 'group where everyone may benefit.
Jan 26 2005
"news.digitalmars.com" <ivan.senji public.srce.hr> wrote in message news:ct9635$2uju$1 digitaldaemon.com... OOps! Where did my name go. Stupid Outlook Express. (or stupid me)
Jan 26 2005