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 }