home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


Previous Section Next Section

$@

Match exactly zero tokens ( V8.only)LHS operator

There will be times when you have to match an empty workspace. The $@ operator, when used in the LHS, does exactly that. To illustrate, consider the following rule:

R $@      $#error $@ nouser $: "553 User address required"

Here, the idea is to detect an empty address (the LHS), and to reject the message with an error (the RHS) if such an address is found. This LHS matches a workspace (an address) that contains zero information (zero tokens). Here, then, the $@ operator matches an empty workspace.

The $@ operator was introduced because it is illegal to literally put nothing on the LHS. The following rule (here we show tabs with tab) won't work:

Rtab$#error $@ nouser $: "553 User address required"

If you try to match an empty workspace such as this, you will get the following error:

configfile: line number: R line: null LHS 

Note that the $@ operator matches zero tokens only when used on the LHS. When used on the RHS $@ has a totally different meaning. Note, too, that the $@ operator on the LHS cannot be referenced by a $ digit operator on the RHS.

    Previous Section Next Section