Automatikus pontosvessző beszúrás a JavaScriptben

Preview:

Citation preview

Automatikus pontos-vessző beszúrás a

JavaScriptben

Farkas MátéBudapest.js meetup 2010.09.27.

Ha elfelejted kitenni a pontosvesszőt, a JavaScript motorja megteszi helyetted.

Diavetítésnek vége, kattintásra kilép

Mikor kell pontosvessző?• Empty statement: ;;• Variable statement: var x;• Expression statement: f(1);• do-while statement:

do … while (--i);

Mikor kell pontosvessző?• continue, break:

continue [lbl];break [lbl];

• throw, return:throw [error];return [something];

Mikor nem kell?• Block statement:

{ … }• If statement:

if ( true ) …

Mikor nem kell?• Iterációk: while ( true ) …• With: with ( x ) …• Label: outer: …• Függvény létrehozás:

function x() {…}

A szabály (1)• Ha balról jobbra haladva a

kö vet kező token a nyelvtan szerint nem oda való, de ez egy záró }, vagy a jelenle gitől sortörés választja el…

A szabály (2)• vagy ha végére értünk az

elemzendő szövegnek, de ennek ellenére nem elemezhető…

A szabály (3)• vagy ha bár a következő

token a nyelvtan szerint ott lehet, de az előzőtől sortörés választja el a tiltás ellenére*

A szabály• …akkor pontosvessző kerül

a következő token elé illet ve a forrásszöveg végére

• Kivétel: for ciklus feje, és nem jön létre üres utasítás

Nem lehet sortörés (|)• X|++; X|--;• continue | label;• break | label;• return | expression;• throw | expression;

Példák

Példák

{ 12 } 3

Példák

{ 1;2; } 3;

Példák

returna + b

Példák

return;a + b;

Példák

a + b( c + d ) * e

Példák

a + b( c + d ) * e;

Példák

a + b( c + d ) * e;

Példák

if ( true )else x = 13

Példák

if ( true )else x = 13

Köszönöm a figyelmet!

Farkas MátéBudapest.js meetup 2010.09.27.

Recommended