The "node" control statement
----------------------------------------------
Abstract

The "node" statement declares the existence of a new node.
----------------------------------------------
Syntax

	.node <node list>
----------------------------------------------
BNF

node_list : node_list node
	  | /* nothing */

node : '.node' node_list '\n'
----------------------------------------------
Description

The "node" statement declares new nodes that are not declared
elsewhere.  It is not allowed to delcare a node more than once in the
same scope.

One use is to declare local nodes that are not seen outside.

Another use is to declare nodes as local that failed to be passed in
as externals.

The scope of the node is the object being defined.  "If" has no effect
on the scope, but "select" does.
----------------------------------------------
Example 1

A true local node.

[Define Model] Foo (pin1 pin2)
.node blab
capacitor (pin1 blab) 120p
resistor  (blab pin2) 1k
[End Define Model]

In this case, "blab" is a local node.
----------------------------------------------
Example 2

Fixing where a connection wasn't specified by the caller.

[Define Model] up_down (pin gnd up down)
.if (!up)
  .node up
  vsource Vup (up gnd) 5
.endif
.if (!down)
  .node down
  vsource Vdown (down gnd) 0
.endif
resistor Rup   (pin up)   1k
resistor Rdown (pin down) 1k
[End Define Model]

In this case, this circuit can be called with or without the "up" and
"down" connections.  If they are omitted, the ".node" statements
complete the circuit.
----------------------------------------------
----------------------------------------------
