github.com/jhump/protocompile@v0.0.0-20221021153901-4f6f732835e8/ast/no_source.go (about)

     1  package ast
     2  
     3  // UnknownPos is a placeholder position when only the source file
     4  // name is known.
     5  func UnknownPos(filename string) SourcePos {
     6  	return SourcePos{Filename: filename}
     7  }
     8  
     9  // NoSourceNode is a placeholder AST node that implements numerous
    10  // interfaces in this package. It can be used to represent an AST
    11  // element for a file whose source is not available.
    12  type NoSourceNode struct {
    13  	filename string
    14  }
    15  
    16  // NewNoSourceNode creates a new NoSourceNode for the given filename.
    17  func NewNoSourceNode(filename string) NoSourceNode {
    18  	return NoSourceNode{filename: filename}
    19  }
    20  
    21  func (n NoSourceNode) Name() string {
    22  	return n.filename
    23  }
    24  
    25  func (n NoSourceNode) Start() Token {
    26  	return 0
    27  }
    28  
    29  func (n NoSourceNode) End() Token {
    30  	return 0
    31  }
    32  
    33  func (n NoSourceNode) NodeInfo(Node) NodeInfo {
    34  	return NodeInfo{
    35  		fileInfo: &FileInfo{name: n.filename},
    36  	}
    37  }
    38  
    39  func (n NoSourceNode) GetSyntax() Node {
    40  	return n
    41  }
    42  
    43  func (n NoSourceNode) GetName() Node {
    44  	return n
    45  }
    46  
    47  func (n NoSourceNode) GetValue() ValueNode {
    48  	return n
    49  }
    50  
    51  func (n NoSourceNode) FieldLabel() Node {
    52  	return n
    53  }
    54  
    55  func (n NoSourceNode) FieldName() Node {
    56  	return n
    57  }
    58  
    59  func (n NoSourceNode) FieldType() Node {
    60  	return n
    61  }
    62  
    63  func (n NoSourceNode) FieldTag() Node {
    64  	return n
    65  }
    66  
    67  func (n NoSourceNode) FieldExtendee() Node {
    68  	return n
    69  }
    70  
    71  func (n NoSourceNode) GetGroupKeyword() Node {
    72  	return n
    73  }
    74  
    75  func (n NoSourceNode) GetOptions() *CompactOptionsNode {
    76  	return nil
    77  }
    78  
    79  func (n NoSourceNode) RangeStart() Node {
    80  	return n
    81  }
    82  
    83  func (n NoSourceNode) RangeEnd() Node {
    84  	return n
    85  }
    86  
    87  func (n NoSourceNode) GetNumber() Node {
    88  	return n
    89  }
    90  
    91  func (n NoSourceNode) MessageName() Node {
    92  	return n
    93  }
    94  
    95  func (n NoSourceNode) GetInputType() Node {
    96  	return n
    97  }
    98  
    99  func (n NoSourceNode) GetOutputType() Node {
   100  	return n
   101  }
   102  
   103  func (n NoSourceNode) Value() interface{} {
   104  	return nil
   105  }