Cody

# Problem 988. Convert a substructure reference string into a valid definition structure for subsref and subsasgn

You have a reference to an element in a data structure, which you want to pass to a function. Not the value itself, but the reference. And you don't like to use evil eval constructions. Therefore, you convert the reference into a structure, like liked by Matlab's built-in subsref and subsasgn functions.

For example, to reference the value a(12), you would have to convert '(12)' into

```def =
type: '()'
subs: {}
```

And to reference a(12).field_b{1,3}{2}((3:4),:).c, you would need to convert '(12).field_b{1,3}{2}((3:4),:).c' into

```def(1) =
type: '()'
subs: {}
```
```def(2) =
type: '.'
subs: {'field_b'}
```
```def(3) =
type: '{}'
subs: {  }
```
```def(4) =
type: '{}'
subs: {2}
```
```def(5) =
type: '()'
subs: {[3 4]  ':'}
```
```def(6) =
type: '.'
subs: {'c'}
```

The assignment is correct when any sub-structure reference that is accepted by subsref and subsasgn is correctly converted from a string to a valid structure.

Note: Solutions wrapped in (f)eval(c), inline, str2func, regexprep (dynamic regular expressions), etc, are not appreciated.

### Solution Stats

37.5% Correct | 62.5% Incorrect
Last Solution submitted on Aug 10, 2018