private List<FunctionTypeNode.ArgumentNode> ParameterDecl()
            throws SyntaxException {
        
        try {
            if (iterator.current().type().is(Token.Type.IDENTIFIER)) {
                return IdentifierList();
            } else if (iterator.current().type().is(Token.Type.Type)) {
                Position pos = iterator.current().coordinates().starting();
                return Arrays.asList(
                        new FunctionTypeNode.ArgumentNode("", Type(), pos));
            } else {
                return new LinkedList<FunctionTypeNode.ArgumentNode>();
            }
        } catch(SyntaxException ex) {
            throw ex;
        } catch(Exception ex) {
            throw (NonAnalysisException)new NonAnalysisException(ex)
                    .initPosition(iterator.current().coordinates().starting())
                    .Log("ru.bmstu.iu9.compiler.syntax");
        }
    }