]> granicus.if.org Git - python/commitdiff
with and as are now keywords. There are some generated files I can't recreate.
authorNeal Norwitz <nnorwitz@gmail.com>
Wed, 6 Sep 2006 06:28:06 +0000 (06:28 +0000)
committerNeal Norwitz <nnorwitz@gmail.com>
Wed, 6 Sep 2006 06:28:06 +0000 (06:28 +0000)
Grammar/Grammar
Include/code.h
Include/parsetok.h
Lib/plat-mac/aetools.py
Lib/plat-mac/lib-scriptpackages/StdSuites/AppleScript_Suite.py
Lib/plat-sunos5/STROPTS.py
Misc/NEWS
Parser/parsetok.c
Python/ast.c
Python/graminit.c
Python/pythonrun.c

index c3709d2d14f3fdd93ed75fad4921c5896604224f..83e50582fbc0e305a18f790edc62f22e1d6c698f 100644 (file)
@@ -64,8 +64,8 @@ import_stmt: import_name | import_from
 import_name: 'import' dotted_as_names
 import_from: ('from' ('.'* dotted_name | '.'+)
               'import' ('*' | '(' import_as_names ')' | import_as_names))
-import_as_name: NAME [('as' | NAME) NAME]
-dotted_as_name: dotted_name [('as' | NAME) NAME]
+import_as_name: NAME ['as' NAME]
+dotted_as_name: dotted_name ['as' NAME]
 import_as_names: import_as_name (',' import_as_name)* [',']
 dotted_as_names: dotted_as_name (',' dotted_as_name)*
 dotted_name: NAME ('.' NAME)*
@@ -83,7 +83,7 @@ try_stmt: ('try' ':' suite
            ['finally' ':' suite] |
           'finally' ':' suite))
 with_stmt: 'with' test [ with_var ] ':' suite
-with_var: ('as' | NAME) expr
+with_var: 'as' expr
 # NB compile.c makes sure that the default except clause is last
 except_clause: 'except' [test [',' test]]
 suite: simple_stmt | NEWLINE INDENT stmt+ DEDENT
index 6c0e706df6f079f981db905090744d1b6d346729..744c1a69b8ad01005d1f51d8435dcf4d00bcce3e 100644 (file)
@@ -52,7 +52,9 @@ typedef struct {
 /* This should be defined if a future statement modifies the syntax.
    For example, when a keyword is added.
 */
+#if 0
 #define PY_PARSER_REQUIRES_FUTURE_KEYWORD
+#endif
 
 #define CO_MAXBLOCKS 20 /* Max static block nesting within a function */
 
index 0f87e81f035a9b86c8f656564ca33082c8679c29..2b4ce1ea4ba62ab49f0e16790bbe3b8706d1c56a 100644 (file)
@@ -23,7 +23,9 @@ typedef struct {
 
 #define PyPARSE_DONT_IMPLY_DEDENT      0x0002
 
+#if 0
 #define PyPARSE_WITH_IS_KEYWORD                0x0003
+#endif
 
 PyAPI_FUNC(node *) PyParser_ParseString(const char *, grammar *, int,
                                               perrdetail *);
index 79f3978316dcfaddd0727a9228109d36e3dbbb0d..c277b52d1d9d1c6a64f9a015ce30e6394b0894a5 100644 (file)
@@ -233,7 +233,7 @@ class TalkTo:
         """Send 'activate' command"""
         self.send('misc', 'actv')
 
-    def _get(self, _object, as=None, _attributes={}):
+    def _get(self, _object, asfile=None, _attributes={}):
         """_get: get data from an object
         Required argument: the object
         Keyword argument _attributes: AppleEvent attribute dictionary
@@ -243,8 +243,8 @@ class TalkTo:
         _subcode = 'getd'
 
         _arguments = {'----':_object}
-        if as:
-            _arguments['rtyp'] = mktype(as)
+        if asfile:
+            _arguments['rtyp'] = mktype(asfile)
 
         _reply, _arguments, _attributes = self.send(_code, _subcode,
                 _arguments, _attributes)
@@ -253,8 +253,8 @@ class TalkTo:
 
         if _arguments.has_key('----'):
             return _arguments['----']
-            if as:
-                item.__class__ = as
+            if asfile:
+                item.__class__ = asfile
             return item
 
     get = _get
index 574043d4a4ba56a3dc6a919e4a2a06eb50deb825..773d1d7563806474d6d17760e3a0ded681b0e91c 100644 (file)
@@ -300,7 +300,7 @@ class AppleScript_Suite_Events:
         if _arguments.has_key('----'):
             return _arguments['----']
 
-    def as(self, _object, _attributes={}, **_arguments):
+    def as_(self, _object, _attributes={}, **_arguments):
         """as: Coercion
         Required argument: an AE object reference
         Keyword argument _attributes: AppleEvent attribute dictionary
index e95db932d11eb51773f0884c22a7659c07d73949..4970bd722d7f99a1db67b221d50c1ab4c94d8e26 100644 (file)
@@ -1550,7 +1550,7 @@ IE_NOMEM = -1
 AS_PAGLCK = 0x80
 AS_CLAIMGAP = 0x40
 AS_UNMAPWAIT = 0x20
-def AS_TYPE_64BIT(as): return \
+def AS_TYPE_64BIT(as_): return \
 
 AS_LREP_LINKEDLIST = 0
 AS_LREP_SKIPLIST = 1
index a599dbd3e6a4c0ca431d14ba6c05c5a66123b56d..43e6a376dea880dcf0f2b5db0386e545b79b64c4 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -30,6 +30,8 @@ Core and builtins
   required changing the .pyc magic number.  This means that .pyc files
   generated before 2.5c2 will be regenerated.
 
+- with and as are now keywords.
+
 
 Library
 -------
index be53e1c5912f2e19bd9fbd81e4e840372dc30123..c951396c9778bf35fefb9332ed4c14a078926259 100644 (file)
@@ -89,9 +89,7 @@ PyParser_ParseFileFlags(FILE *fp, const char *filename, grammar *g, int start,
        return parsetok(tok, g, start, err_ret, flags);
 }
 
-/* Parse input coming from the given tokenizer structure.
-   Return error code. */
-
+#if 0
 static char with_msg[] =
 "%s:%d: Warning: 'with' will become a reserved keyword in Python 2.6\n";
 
@@ -105,6 +103,10 @@ warn(const char *msg, const char *filename, int lineno)
                filename = "<string>";
        PySys_WriteStderr(msg, filename, lineno);
 }
+#endif
+
+/* Parse input coming from the given tokenizer structure.
+   Return error code. */
 
 static node *
 parsetok(struct tok_state *tok, grammar *g, int start, perrdetail *err_ret,
index 4883cc23fb8ca9e283cb027224230184bff97579..9e0c1846c00d690ec5e042eb9207d756194bfd1a 100644 (file)
@@ -2190,10 +2190,6 @@ alias_for_import_name(struct compiling *c, const node *n)
         case import_as_name:
             str = NULL;
             if (NCH(n) == 3) {
-                if (strcmp(STR(CHILD(n, 1)), "as") != 0) {
-                    ast_error(n, "must use 'as' in import");
-                    return NULL;
-                }
                 str = NEW_IDENTIFIER(CHILD(n, 2));
             }
             return alias(NEW_IDENTIFIER(CHILD(n, 0)), str, c->c_arena);
@@ -2206,10 +2202,6 @@ alias_for_import_name(struct compiling *c, const node *n)
                 alias_ty a = alias_for_import_name(c, CHILD(n, 0));
                 if (!a)
                     return NULL;
-                if (strcmp(STR(CHILD(n, 1)), "as") != 0) {
-                    ast_error(n, "must use 'as' in import");
-                    return NULL;
-                }
                 assert(!a->asname);
                 a->asname = NEW_IDENTIFIER(CHILD(n, 2));
                 return a;
@@ -2848,10 +2840,6 @@ static expr_ty
 ast_for_with_var(struct compiling *c, const node *n)
 {
     REQ(n, with_var);
-    if (strcmp(STR(CHILD(n, 0)), "as") != 0) {
-        ast_error(n, "expected \"with [expr] as [var]\"");
-        return NULL;
-    }
     return ast_for_expr(c, CHILD(n, 1));
 }
 
index 8f20502b10a6241f32e66bb2e203e2e1e7027b1b..33ef64b8b7f7a4f8ba018c70771216edc83bc78e 100644 (file)
@@ -551,9 +551,8 @@ static state states_26[8] = {
 static arc arcs_27_0[1] = {
        {19, 1},
 };
-static arc arcs_27_1[3] = {
+static arc arcs_27_1[2] = {
        {78, 2},
-       {19, 2},
        {0, 1},
 };
 static arc arcs_27_2[1] = {
@@ -564,16 +563,15 @@ static arc arcs_27_3[1] = {
 };
 static state states_27[4] = {
        {1, arcs_27_0},
-       {3, arcs_27_1},
+       {2, arcs_27_1},
        {1, arcs_27_2},
        {1, arcs_27_3},
 };
 static arc arcs_28_0[1] = {
        {12, 1},
 };
-static arc arcs_28_1[3] = {
+static arc arcs_28_1[2] = {
        {78, 2},
-       {19, 2},
        {0, 1},
 };
 static arc arcs_28_2[1] = {
@@ -584,7 +582,7 @@ static arc arcs_28_3[1] = {
 };
 static state states_28[4] = {
        {1, arcs_28_0},
-       {3, arcs_28_1},
+       {2, arcs_28_1},
        {1, arcs_28_2},
        {1, arcs_28_3},
 };
@@ -912,9 +910,8 @@ static state states_40[6] = {
        {1, arcs_40_4},
        {1, arcs_40_5},
 };
-static arc arcs_41_0[2] = {
+static arc arcs_41_0[1] = {
        {78, 1},
-       {19, 1},
 };
 static arc arcs_41_1[1] = {
        {82, 2},
@@ -923,7 +920,7 @@ static arc arcs_41_2[1] = {
        {0, 2},
 };
 static state states_41[3] = {
-       {2, arcs_41_0},
+       {1, arcs_41_0},
        {1, arcs_41_1},
        {1, arcs_41_2},
 };
@@ -1865,7 +1862,7 @@ static dfa dfas[84] = {
        {296, "with_stmt", 0, 6, states_40,
         "\000\000\000\000\000\000\000\000\000\000\000\000\010\000\000\000\000\000\000\000\000"},
        {297, "with_var", 0, 3, states_41,
-        "\000\000\010\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
+        "\000\000\000\000\000\000\000\000\000\100\000\000\000\000\000\000\000\000\000\000\000"},
        {298, "except_clause", 0, 5, states_42,
         "\000\000\000\000\000\000\000\000\000\000\000\000\040\000\000\000\000\000\000\000\000"},
        {299, "suite", 0, 5, states_43,
index e8f4fa2e5625b7bec1a85d957af1893c63783c5c..634572e22016a02ae3ef66c85035352203a71169 100644 (file)
@@ -723,11 +723,18 @@ PyRun_InteractiveLoopFlags(FILE *fp, const char *filename, PyCompilerFlags *flag
 }
 
 /* compute parser flags based on compiler flags */
+#define PARSER_FLAGS(flags) \
+       ((flags) ? ((((flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \
+                     PyPARSE_DONT_IMPLY_DEDENT : 0)) : 0)
+
+#if 0
+/* Keep an example of flags with future keyword support. */
 #define PARSER_FLAGS(flags) \
        ((flags) ? ((((flags)->cf_flags & PyCF_DONT_IMPLY_DEDENT) ? \
                      PyPARSE_DONT_IMPLY_DEDENT : 0) \
                    | ((flags)->cf_flags & CO_FUTURE_WITH_STATEMENT ? \
                       PyPARSE_WITH_IS_KEYWORD : 0)) : 0)
+#endif
 
 int
 PyRun_InteractiveOneFlags(FILE *fp, const char *filename, PyCompilerFlags *flags)