paulkokos / ErgasiaMegaglotistes

Αυτη ειναι η εργασια μεταγλωτιστων
MIT License
0 stars 0 forks source link

Λεκτικη αναλυση #4

Open paulkokos opened 5 years ago

paulkokos commented 5 years ago

Οπως περιγραφουν οι διαφανειες

Mitsakos46 commented 5 years ago

PHP OPERATORS 1.Arithmetic operators 2.Assignment operators 3.Comparison operators 4.Logical operators 5.String operators 6.Array operators

1.Operator Name Example Result
+ Addition $x + $y Sum of $x and $y
- Subtraction $x - $y Difference of $x and $y
* Multiplication $x * $y Product of $x and $y
/ Division $x / $y Quotient of $x and $y
% Modulus $x % $y Remainder of $x divided by $y
2.Assignment Same as... Description
x = y x = y The left operand gets set to the value of the expression on the right
x += y x = x + y Addition
x -= y x = x - y Subtraction
x *= y x = x * y Multiplication
x /= y x = x / y Division
x %= y x = x % y Modulus
3.Operator Name Example Result
== Equal $x == $y Returns true if $x is equal to $y
=== Identical $x === $y Returns true if $x is equal to $y, and they are of the same type
!= Not equal $x != $y Returns true if $x is not equal to $y
<> Not equal $x <> $y Returns true if $x is not equal to $y
!== Not identical $x !== $y Returns true if $x is not equal to $y, or they are not of the same type
> Greater than $x > $y Returns true if $x is greater than $y
< Less than $x < $y Returns true if $x is less than $y
>= Greater than or equal to $x >= $y Returns true if $x is greater than or equal to $y
<= Less than or equal to $x <= $y Returns true if $x is less than or equal to $y
4.Operator Name Example Result
and And $x and $y True if both $x and $y are true
or Or $x or $y True if either $x or $y is true
xor Xor $x xor $y True if either $x or $y is true, but not both
&& And $x && $y True if both $x and $y are true
|| Or $x || $y True if either $x or $y is true
! Not !$x True if $x is not true
5.Operator Name Example Result
. Concatenation $txt1 . $txt2 Concatenation of $txt1 and $txt2
.= Concatenation assignment $txt1 .= $txt2 Appends $txt2 to $txt1
6.Operator Name Example Result
+ Union $x + $y Union of $x and $y
== Equality $x == $y Returns true if $x and $y have the same key/value pairs
=== Identity $x === $y Returns true if $x and $y have the same key/value pairs in the same order and of the same types
!= Inequality $x != $y Returns true if $x is not equal to $y
<> Inequality $x <> $y Returns true if $x is not equal to $y
!== Non-identity $x !== $y Returns true if $x is not identical to $y
Mitsakos46 commented 5 years ago

%option noyywrap %{

define Addition 100

define Subtraction 101

define Multiplication 102

define Division 103

define Modulus 104

define Equal 200

define Not_equal 201

define Greater_than 202

define Less_than 203

define Greater_than_or_equal_to 204

define Less_than_or_equal_to 205

define goal 300

include

include

%}

int attr; ws [\n\t]+ nzdigit [1-9] digit (0|{nzdigit}) letter [A-Za-z] id {letter}({letter}|{digit})*

%%

{ws} {/ do nothing /} "+" {attr=Addition;return(goal);} "-" {attr=Subtraction;return(goal);} "*" {attr=Multiplication;return(goal);} "/" {attr=Division;return(goal);} "%" {attr=Modulus;return(goal);} "==" {attr=Equal;return(goal);} "!=" {attr=Not_equal;return(goal);} ">" {attr=Greater_than;return(goal);} "<" {attr=Less_than;return(goal);} ">=" {attr=Greater_than_or_equal_to;return(goal);} "<=" {attr=Less_than_or_equal_to;return(goal);}

%%

int main() { int token; while ((token=yylex()) !=0) printf("%s <%d, %d> \n", yytext, token,attr); }