Vinjett 1, Period 1 Syntax versus Semantik • en mening är en substantivfras följd av ett verb • en substantivfras är en bestämd-artikel följd av flera-adjektiv följd av ett substantiv • flera-adjektiv är ett adjektiv eller ett adjektiv följd av flera-adjektiv • en bestämd-artikel är ordet ‘en’ • ett adjektiv är ordet ‘glad’ eller ordet ‘ledsen’ eller ordet ‘stor’ eller ordet ‘liten’ • ett substantiv är ordet ‘pojke’ eller ordet ‘flicka’ eller ordet ‘bil’ eller ordet ‘lampa’ • ett verb är ordet ‘sjunger’ eller ordet ‘springer’ eller ordet ‘åker’ eller order ‘passerar’ springer en sjunger en stor stor en liten hund springer en ledsen bil springer en glad lampa åker en liten bil sjunger en glad liten flicka åker en stor pojke sjunger en stor bil passerar • statements ::= statement | statement • statement ::= declare-statement | • declare-statement ::= ‘int’ • if-statement ::= ‘if’ ’(’ if-statement | identifer predicate statements assign-statement ‘;’ ’)’ ‘{’ statements ‘}’ • assign-statement ::= identifier ‘=’ expression ‘;’ • identifier ::= ‘x’ | ‘y’ | ‘z’ • number ::= ‘0’ | ‘1’ | ‘2’ | ‘3’ | ‘4’ | ‘5’ | ‘6’ | ‘7’ | ‘8’ | ‘9’ • predicate ::= expression ‘==’ expression | • expression ::= identifier | 1 2 3 4 5 int x ; x = 1 if ( x = 2){ x = 1; } 1 2 3 4 5 int x ; x = 5; if ( x != 0){ x = 1 / ; } number | expression ‘!=’ expression expression ‘/’ expression 1 2 3 4 if ( x == 2){ int x ; x = 1; } 1 2 3 4 5 int x ; x = 5; if ( x != 2){ x = 1 / x; } 1 2 3 4 5 int x ; x = 1; if ( x == 2){ x = 1; } 1 2 3 4 5 int x ; x = 5; if ( x != 0){ x = 1 / x; }