()
| 31 | // tslint:disable-next-line:ban-types |
| 32 | export function expandValue(variableCreate: Function, value: string, root: string = '', extra?: any): any { |
| 33 | const parseCString = () => { |
| 34 | value = value.trim(); |
| 35 | if (value[0] !== '"' && value[0] !== '\'') { |
| 36 | return ''; |
| 37 | } |
| 38 | let stringEnd = 1; |
| 39 | let inString = true; |
| 40 | const charStr = value[0]; |
| 41 | let remaining = value.substr(1); |
| 42 | let escaped = false; |
| 43 | while (inString) { |
| 44 | if (escaped) { |
| 45 | escaped = false; |
| 46 | } |
| 47 | else if (remaining[0] === '\\') { |
| 48 | escaped = true; |
| 49 | } |
| 50 | else if (remaining[0] === charStr) { |
| 51 | inString = false; |
| 52 | } |
| 53 | |
| 54 | remaining = remaining.substr(1); |
| 55 | stringEnd++; |
| 56 | } |
| 57 | const str = value.substr(0, stringEnd).trim(); |
| 58 | value = value.substr(stringEnd).trim(); |
| 59 | return str; |
| 60 | }; |
| 61 | |
| 62 | const stack = [root]; |
| 63 | let parseValue; |
no outgoing calls
no test coverage detected