Changeset e9a8df


Ignore:
Timestamp:
2010-03-16 11:23:15 (4 years ago)
Author:
Poul-Henning Kamp <phk@…>
Branches:
master, 3.0, 4.0, experimental-ims
Children:
aeff49
Parents:
138771
git-author:
Poul-Henning Kamp <phk@…> (2010-03-16 11:23:15)
git-committer:
Poul-Henning Kamp <phk@…> (2010-03-16 11:23:15)
Message:

More polishing and comment cleanup

git-svn-id:  http://www.varnish-cache.org/svn/trunk/varnish-cache@4617 d4fa192b-c00b-0410-8231-f00ffab90ce4

Location:
lib/libvcl
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • lib/libvcl/vcc_action.c

    r3c7cd3 re9a8df  
    2626 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 
    2727 * SUCH DAMAGE. 
     28 * 
     29 * This file parses the real action of the VCL code, the procedure 
     30 * statements which do the actual work. 
    2831 */ 
    2932 
     
    4144#include "vcc_compile.h" 
    4245#include "libvarnish.h" 
    43  
    44 /*--------------------------------------------------------------------*/ 
    45  
    46 static void 
    47 parse_action(struct tokenlist *tl) 
    48 { 
    49         int retval = 0; 
    50  
    51         Expect(tl, ID); 
    52  
    53 #define VCL_RET_MAC(l, U)                                               \ 
    54         do {                                                            \ 
    55                 if (vcc_IdIs(tl->t, #l)) {                              \ 
    56                         Fb(tl, 1, "VRT_done(sp, VCL_RET_" #U ");\n");   \ 
    57                         vcc_ProcAction(tl->curproc, VCL_RET_##U, tl->t);\ 
    58                         retval = 1;                                     \ 
    59                 }                                                       \ 
    60         } while (0); 
    61 #include "vcl_returns.h" 
    62 #undef VCL_RET_MAC 
    63         if (!retval) { 
    64                 vsb_printf(tl->sb, "Expected action name.\n"); 
    65                 vcc_ErrWhere(tl, tl->t); 
    66                 ERRCHK(tl); 
    67         } 
    68         vcc_NextToken(tl); 
    69 } 
    7046 
    7147/*--------------------------------------------------------------------*/ 
     
    489465parse_return(struct tokenlist *tl) 
    490466{ 
     467        int retval = 0; 
     468 
    491469        vcc_NextToken(tl); 
    492470        Expect(tl, '('); 
     
    494472        Expect(tl, ID); 
    495473 
    496         parse_action(tl); 
    497         ERRCHK(tl); 
     474#define VCL_RET_MAC(l, U)                                               \ 
     475        do {                                                            \ 
     476                if (vcc_IdIs(tl->t, #l)) {                              \ 
     477                        Fb(tl, 1, "VRT_done(sp, VCL_RET_" #U ");\n");   \ 
     478                        vcc_ProcAction(tl->curproc, VCL_RET_##U, tl->t);\ 
     479                        retval = 1;                                     \ 
     480                }                                                       \ 
     481        } while (0); 
     482#include "vcl_returns.h" 
     483#undef VCL_RET_MAC 
     484        if (!retval) { 
     485                vsb_printf(tl->sb, "Expected return action name.\n"); 
     486                vcc_ErrWhere(tl, tl->t); 
     487                ERRCHK(tl); 
     488        } 
     489        vcc_NextToken(tl); 
    498490        Expect(tl, ')'); 
    499491        vcc_NextToken(tl); 
     
    543535}; 
    544536 
    545 void 
     537int 
    546538vcc_ParseAction(struct tokenlist *tl) 
    547539{ 
     
    550542 
    551543        at = tl->t; 
    552         if (at->tok == ID) { 
    553                 for(atp = action_table; atp->name != NULL; atp++) { 
    554                         if (vcc_IdIs(at, atp->name)) { 
    555                                 atp->func(tl); 
    556                                 return; 
    557                         } 
    558                 } 
    559         } 
    560         vsb_printf(tl->sb, "Expected action, 'if' or '}'\n"); 
    561         vcc_ErrWhere(tl, at); 
    562 } 
     544        assert (at->tok == ID); 
     545        for(atp = action_table; atp->name != NULL; atp++) { 
     546                if (vcc_IdIs(at, atp->name)) { 
     547                        atp->func(tl); 
     548                        return(1); 
     549                } 
     550        } 
     551        return (0); 
     552} 
  • lib/libvcl/vcc_compile.h

    r3fbc65 re9a8df  
    155155 
    156156/* vcc_action.c */ 
    157 void vcc_ParseAction(struct tokenlist *tl); 
     157int vcc_ParseAction(struct tokenlist *tl); 
    158158 
    159159/* vcc_backend.c */ 
  • lib/libvcl/vcc_parse.c

    r86bfe7 re9a8df  
    468468Compound(struct tokenlist *tl) 
    469469{ 
     470        int i; 
    470471 
    471472        ExpectErr(tl, '{'); 
     
    499500                        tl->err = 1; 
    500501                        return; 
     502                case ID: 
     503                        i = vcc_ParseAction(tl); 
     504                        ERRCHK(tl); 
     505                        if (i) { 
     506                                ExpectErr(tl, ';'); 
     507                                vcc_NextToken(tl); 
     508                                break; 
     509                        } 
     510                        /* FALLTHROUGH */ 
    501511                default: 
    502                         vcc_ParseAction(tl); 
    503                         ERRCHK(tl); 
    504                         ExpectErr(tl, ';'); 
    505                         vcc_NextToken(tl); 
    506                         break; 
     512                        /* We deliberately do not mention inline C */ 
     513                        vsb_printf(tl->sb, 
     514                            "Expected an action, 'if', '{' or '}'\n"); 
     515                        vcc_ErrWhere(tl, tl->t); 
     516                        return; 
    507517                } 
    508518        } 
     
    560570/*-------------------------------------------------------------------- 
    561571 * Top level of parser, recognize: 
     572 *      Inline C-code 
     573 *      ACL definitions 
    562574 *      Function definitions 
    563  *      Backend definitions 
     575 *      Backend & Director definitions 
    564576 *      End of input 
    565577 */ 
     
    604616                        /* FALLTHROUGH */ 
    605617                default: 
     618                        /* We deliberately do not mention inline-C */ 
    606619                        vsb_printf(tl->sb, "Expected one of\n\t"); 
    607620                        for (tp = toplev; tp->name != NULL; tp++) { 
Note: See TracChangeset for help on using the changeset viewer.