I wouldn’t use such a syntax, but SemanTeX can be set up to accomplish something resembling this (disclaimer: I am the author). Note that you will need a recent update of SemanTeX (October or later, I think) for this example to work. Note that I also prefer defining keys dot and ddot instead of directly using the commands \dot and \ddot.
\documentclass{article}
\usepackage{semantex}
\NewVariableClass\tens[
output=\tens,
define keys={
{dot}{ command=\dot },
{ddot}{ command=\ddot },
{pre index}{ right return, symbol put right={{}} },
{post index}{ right return, symbol put right=\kern-\scriptspace },
},
define keys[1]={
{default}{ pre index, lower={#1}, post index },
{arg}{ pre index, upper={#1}, post index },
},
]
\begin{document}
$ \tens{\dot x}{\mu} = \tens{\dot{\Gamma}}{\mu}[\alpha][\beta]
\tens{\dot{x}}{\alpha} \tens{\dot{x}}{\beta} $
$ \tens{\ddot x}{\mu} = \tens{\dot{\Gamma}}{\mu}[\alpha][\beta]
\tens{\dot{x}}{\alpha} \tens{\dot{x}}{\beta} $
$ \tens{x}[ddot]{\mu} = \tens{\Gamma}[dot]{\mu}[\alpha][\beta]
\tens{x}[dot]{\alpha} \tens{x}[dot]{\beta} $
\end{document}

Personally, I would prefer to use a more keyval-based syntax, as below:
\documentclass{article}
\usepackage{semantex}
\NewVariableClass\Tensor[
output=\Tensor,
define keys={
{dot}{ command=\dot },
{ddot}{ command=\ddot },
{pre index}{ right return, symbol put right={{}} },
{post index}{ right return, symbol put right=\kern-\scriptspace },
},
define keys[1]={
{up}{ pre index, upper={#1}, post index },
{low}{ pre index, lower={#1}, post index },
},
]
\begin{document}
$ \Tensor{x}[dot,up=\mu] = \Tensor{\Gamma}[dot,up=\mu,low=\alpha,low=\beta]
\Tensor{x}[dot,up=\alpha] \Tensor{x}[dot,up=\beta] $
$ \Tensor{x}[dot,up=\mu] = \Tensor{\Gamma}[dot,up=\mu,low=\alpha,low=\beta]
\Tensor{x}[dot,up=\alpha] \Tensor{x}[dot,up=\beta] $
\NewObject\Tensor\tGamma{\Gamma}
\NewObject\Tensor\tx{x}
$ \tx[dot,up=\mu] = \tGamma[dot,up=\mu,low=\alpha,low=\beta]
\tx[dot,up=\alpha] \tx[dot,up=\beta] $
$ \tx[dot,up=\mu] = \tGamma[dot,up=\mu,low=\alpha,low=\beta]
\tx[dot,up=\alpha] \tx[dot,up=\beta] $
\end{document}

\tensfunction to determine when its argument list has ended... maybe I need to declare the total number of upper and lower indices as an argument to\tens. – Myridium Nov 27 '20 at 02:22tensorpackage you can type\tensor{\Gamma}{^\mu_\alpha_\beta}which seems not far from your idea. – egreg Nov 27 '20 at 09:06