124 views
How are constants recogonized by the lexical analyser like

interger 1234     floating point  1234.56789

and what happens when we have -1234  and -1234.56789 how many tokens are generated in this case(each of this case) ?

is "-" considered seperately ?
–1
"-" is considered as a separate token, it is an unary operator. Rest of the constant is taken as a single token, i.e. -1234.56789 are two token: "-" and "1234.56789".
0
but - is not unary  --  and -= are unary right ?
but i too think it will generate as it is valid operator
+3
If "-" is a separate token in "-2.5" then we need not have a representation for negative numbers :)

For generating the number of tokens, following are considered as one:

1.) Keywords: if, else, while, do, for, float,..,etc.

2.) Identifiers: letter followed by letter or underscore or digit.

3.) Constant(consider any real number): 4,10,5.5

4.) Punctuation Symbols: :, ;, , , {, }, [, ], ?

5.) Operators: Relational Operator-> < , >, <=, >=, ==, etc

Logical Operator-> &&, ||, !

Bitwise Operatore-> &, |, ^(Ex-OR), <<, >>

6.) Few more: +, ++, -, --,/,*,+=,-=,=,etc

Now according to your question integer 1234 will be considered as ONE TOKEN (refer constant discussed above)

and , -1234.56789 will be considered as two token( first for - sign and  second for 1234.56789)

Hope, this clears your doubt and help in understanding of the concept.

1
+1 vote